00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef SOCKET_H
00019 #define SOCKET_H
00020 #include <qsocket.h>
00021 #include <qdatastream.h>
00022
00023 class SocketManager;
00024
00030 class Socket: public QObject
00031 {
00032 Q_OBJECT
00033 public:
00038 Socket(SocketManager& rSocketManager, QObject* parent = 0);
00039
00041 ~Socket();
00042
00047 void connectToHost(const std::string& hostname, const int port);
00048
00055 Socket& operator <<(const std::string& xmlMessage);
00056
00058 void close();
00059
00060 private slots:
00062 void socketReadyRead();
00063
00065 void socketConnected();
00066
00068 void socketClosed();
00069
00072 void socketError( int e );
00073
00075 void closeConnection();
00076
00077 private:
00079 SocketManager& m_rSocketManager;
00081 QSocket* m_pSocket;
00083 QDataStream m_OutputStream;
00085 char* m_pBuffer;
00088 static const size_t BUFFER_SIZE;
00090 static const size_t MAX_SIZE;
00091 };
00092
00093 #endif