#ifndef QABSTRACTSOCKET_H
#define QABSTRACTSOCKET_H 
#include <QtCore/qiodevice.h>
#include <QtCore/qobject.h>
typedef enum QtValidLicenseForNetworkModule QtNetworkModule;
struct QHostAddress;
struct QNetworkProxy;
struct QAbstractSocketPrivate;
class QAbstractSocket: public QIODevice{
   public: virtual struct QMetaObject const * metaObject() const
   public: static struct QMetaObject const staticMetaObject;
   public: virtual void* qt_metacast(char const *);
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   public: enum SocketType{
      TcpSocket = 0,
      UdpSocket = 1,
      UnknownSocketType = -1,
   };
   public: enum NetworkLayerProtocol{
      IPv4Protocol = 0,
      IPv6Protocol = 1,
      UnknownNetworkLayerProtocol = -1,
   };
   public: enum SocketError{
      ConnectionRefusedError = 0,
      RemoteHostClosedError = 1,
      HostNotFoundError = 2,
      SocketAccessError = 3,
      SocketResourceError = 4,
      SocketTimeoutError = 5,
      DatagramTooLargeError = 6,
      NetworkError = 7,
      AddressInUseError = 8,
      SocketAddressNotAvailableError = 9,
      UnsupportedSocketOperationError = 10,
      UnknownSocketError = -1,
   };
   public: enum SocketState{
      UnconnectedState = 0,
      HostLookupState = 1,
      ConnectingState = 2,
      ConnectedState = 3,
      BoundState = 4,
      ListeningState = 5,
      ClosingState = 6,
   };
   public: QAbstractSocket(enum QAbstractSocket::SocketType socketType, class QObject* parent);
   public: virtual ~QAbstractSocket();
   public: void connectToHost(class QString const & hostName, quint16 port, class QFlags < enum QIODevice::OpenModeFlag > mode = QIODevice::ReadWrite);
   public: void connectToHost(struct QHostAddress const & address, quint16 port, class QFlags < enum QIODevice::OpenModeFlag > mode = QIODevice::ReadWrite);
   public: void disconnectFromHost();
   public: bool isValid() const
   public: virtual qint64 bytesAvailable() const
   public: virtual qint64 bytesToWrite() const
   public: virtual bool canReadLine() const
   public: quint16 localPort() const
   public: struct QHostAddress localAddress() const
   public: quint16 peerPort() const
   public: struct QHostAddress peerAddress() const
   public: class QString peerName() const
   public: qint64 readBufferSize() const
   public: void setReadBufferSize(qint64 size);
   public: void abort();
   public: int socketDescriptor() const
   public: bool setSocketDescriptor(int socketDescriptor, enum QAbstractSocket::SocketState state = QAbstractSocket::ConnectedState, class QFlags < enum QIODevice::OpenModeFlag > openMode = QIODevice::ReadWrite);
   public: enum QAbstractSocket::SocketType socketType() const
   public: enum QAbstractSocket::SocketState state() const
   public: enum QAbstractSocket::SocketError error() const
   public: virtual void close();
   public: virtual bool isSequential() const
   public: virtual bool atEnd() const
   public: bool flush();
   public: bool waitForConnected(int msecs = 30000);
   public: virtual bool waitForReadyRead(int msecs = 30000);
   public: virtual bool waitForBytesWritten(int msecs = 30000);
   public: bool waitForDisconnected(int msecs = 30000);
#ifndef QT_NO_NETWORKPROXY
   public: void setProxy(struct QNetworkProxy const & networkProxy);
   public: struct QNetworkProxy proxy() const
#endif
   protected: void hostFound();
   protected: void connected();
   protected: void disconnected();
   protected: void stateChanged(enum QAbstractSocket::SocketState);
   protected: void error(enum QAbstractSocket::SocketError);
   protected: void connectToHostImplementation(class QString const & hostName, quint16 port, class QFlags < enum QIODevice::OpenModeFlag > mode = QIODevice::ReadWrite);
   protected: void disconnectFromHostImplementation();
   protected: virtual qint64 readData(char* data, qint64 maxlen);
   protected: virtual qint64 readLineData(char* data, qint64 maxlen);
   protected: virtual qint64 writeData(char const * data, qint64 len);
   protected: void setSocketState(enum QAbstractSocket::SocketState state);
   protected: void setSocketError(enum QAbstractSocket::SocketError socketError);
   protected: void setLocalPort(quint16 port);
   protected: void setLocalAddress(struct QHostAddress const & address);
   protected: void setPeerPort(quint16 port);
   protected: void setPeerAddress(struct QHostAddress const & address);
   protected: void setPeerName(class QString const & name);
   protected: QAbstractSocket(enum QAbstractSocket::SocketType socketType, struct QAbstractSocketPrivate& dd, class QObject* parent = 0);
   private: inline struct QAbstractSocketPrivate* d_func();
   private: inline struct QAbstractSocketPrivate const * d_func() const
   private: QAbstractSocket(class QAbstractSocket const &);
   private: class QAbstractSocket& operator =(class QAbstractSocket const &);
   friend struct QAbstractSocketPrivate;
};
#endif // QABSTRACTSOCKET_H