#ifndef QURL_H
#define QURL_H 
#include <QtCore/qobjectdefs.h>
#include <QtCore/qpair.h>
#include <QtCore/qstring.h>
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QUrlPrivate;
class QUrl{
   public: enum ParsingMode{
      TolerantMode = 0,
      StrictMode = 1,
   };
   public: enum FormattingOption{
      None = 0,
      RemoveScheme = 1,
      RemovePassword = 2,
      RemoveUserInfo = 6,
      RemovePort = 8,
      RemoveAuthority = 30,
      RemovePath = 32,
      RemoveQuery = 64,
      RemoveFragment = 128,
      StripTrailingSlash = 65536,
   };
   public: typedef class QFlags < enum QUrl::FormattingOption > FormattingOptions;
   public: QUrl();
   public: QUrl(class QString const & url);
   public: QUrl(class QString const & url, enum QUrl::ParsingMode mode);
   public: QUrl(class QUrl const & copy);
   public: class QUrl& operator =(class QUrl const & copy);
   public: class QUrl& operator =(class QString const & url);
   public: ~QUrl();
   public: void setUrl(class QString const & url);
   public: void setUrl(class QString const & url, enum QUrl::ParsingMode mode);
   public: void setEncodedUrl(class QByteArray const & url);
   public: void setEncodedUrl(class QByteArray const & url, enum QUrl::ParsingMode mode);
   public: bool isValid() const
   public: bool isEmpty() const
   public: void clear();
   public: void setScheme(class QString const & scheme);
   public: class QString scheme() const
   public: void setAuthority(class QString const & authority);
   public: class QString authority() const
   public: void setUserInfo(class QString const & userInfo);
   public: class QString userInfo() const
   public: void setUserName(class QString const & userName);
   public: class QString userName() const
   public: void setPassword(class QString const & password);
   public: class QString password() const
   public: void setHost(class QString const & host);
   public: class QString host() const
   public: void setPort(int port);
   public: int port() const
   public: int port(int defaultPort) const
   public: void setPath(class QString const & path);
   public: class QString path() const
   public: bool hasQuery() const
   public: void setEncodedQuery(class QByteArray const & query);
   public: class QByteArray encodedQuery() const
   public: void setQueryDelimiters(char valueDelimiter, char pairDelimiter);
   public: char queryValueDelimiter() const
   public: char queryPairDelimiter() const
   public: void setQueryItems(class QList < class QPair < class QString, class QString > > const & query);
   public: void addQueryItem(class QString const & key, class QString const & value);
   public: class QList < class QPair < class QString, class QString > > queryItems() const
   public: bool hasQueryItem(class QString const & key) const
   public: class QString queryItemValue(class QString const & key) const
   public: struct QStringList allQueryItemValues(class QString const & key) const
   public: void removeQueryItem(class QString const & key);
   public: void removeAllQueryItems(class QString const & key);
   public: void setFragment(class QString const & fragment);
   public: class QString fragment() const
   public: bool hasFragment() const
   public: class QUrl resolved(class QUrl const & relative) const
   public: bool isRelative() const
   public: bool isParentOf(class QUrl const & url) const
   public: static class QUrl fromLocalFile(class QString const & localfile);
   public: class QString toLocalFile() const
   public: class QString toString(class QFlags < enum QUrl::FormattingOption > options = QUrl::None) const
   public: class QByteArray toEncoded(class QFlags < enum QUrl::FormattingOption > options = QUrl::None) const
   public: static class QUrl fromEncoded(class QByteArray const & url);
   public: static class QUrl fromEncoded(class QByteArray const & url, enum QUrl::ParsingMode mode);
   public: void detach();
   public: bool isDetached() const
   public: bool operator <(class QUrl const & url) const
   public: bool operator ==(class QUrl const & url) const
   public: bool operator !=(class QUrl const & url) const
   public: static class QString fromPercentEncoding(class QByteArray const &);
   public: static class QByteArray toPercentEncoding(class QString const &, class QByteArray const & exclude = QByteArray::QByteArray(), class QByteArray const & include = QByteArray::QByteArray());
   public: static class QString fromPunycode(class QByteArray const &);
   public: static class QByteArray toPunycode(class QString const &);
   public: static class QString fromAce(class QByteArray const &);
   public: static class QByteArray toAce(class QString const &);
   public: static struct QStringList idnWhitelist();
   public: static void setIdnWhitelist(struct QStringList const &);
   public: class QString errorString() const
   private: struct QUrlPrivate* d;
};
template < > class QTypeInfo < class QUrl >{
   public: static inline char const * name();
   public: enum /*anonymous*/{
      isComplex = 1,
      isStatic = 0,
      isLarge = 0,
      isPointer = 0,
      isDummy = 0,
   };
};
inline class QFlags < enum QUrl::FormattingOption > operator |(enum QUrl::FormattingOption f1, class QFlags < enum QUrl::FormattingOption > f2);
inline class QFlags < enum QUrl::FormattingOption > operator |(enum QUrl::FormattingOption f1, enum QUrl::FormattingOption f2);
#ifndef QT_NO_DATASTREAM
class QDataStream& operator <<(class QDataStream&, class QUrl const &);
class QDataStream& operator >>(class QDataStream&, class QUrl&);
#endif
#ifndef QT_NO_DEBUG_STREAM
struct QDebug operator <<(struct QDebug, class QUrl const &);
#endif
#endif // QURL_H