00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef PPTConnection_h
00034 #define PPTConnection_h 1
00035
00036 #include "Connection.h"
00037 #include "PPTProtocol.h"
00038
00039 class Socket ;
00040
00041 class PPTConnection : public Connection
00042 {
00043 private:
00044 int _timeout ;
00045 char * _inBuff ;
00046 unsigned int _bytesRead ;
00047
00048 PPTConnection()
00049 : _timeout( 0 ) {}
00050
00051 protected:
00052 PPTConnection( int timeout )
00053 : _timeout( timeout ),
00054 _inBuff( 0 ),
00055 _bytesRead( 0 ) {}
00056
00057 virtual int readBuffer( char *inBuff, unsigned int buff_size ) ;
00058 virtual int readBufferNonBlocking( char *inBuff ) ;
00059
00060 virtual void send( const string &buffer ) ;
00061 virtual void sendChunk( const string &buffer,
00062 map<string,string> &extensions ) ;
00063 virtual void read_extensions( map<string,string> &extensions,
00064 const string &xstr ) ;
00065 virtual void receive( ostream &strm, unsigned short len ) ;
00066 public:
00067 virtual ~PPTConnection() {}
00068
00069 virtual void initConnection() = 0 ;
00070 virtual void closeConnection() = 0 ;
00071
00072 virtual string exit() { return PPTProtocol::PPT_EXIT_NOW ; }
00073
00074 virtual void send( const string &buffer,
00075 map<string,string> &extensions ) ;
00076 virtual void sendExtensions( map<string,string> &extensions ) ;
00077 virtual void sendExit() ;
00078 virtual bool receive( map<string,string> &extensions,
00079 ostream *strm = 0 ) ;
00080
00081 virtual void dump( ostream &strm ) const ;
00082 } ;
00083
00084 #endif // PPTConnection_h
00085