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 #define PPT_CHUNK_HEADER_SPACE 15
00042
00043 class PPTConnection : public Connection
00044 {
00045 private:
00046 int _timeout ;
00047 char * _inBuff ;
00048 unsigned int _inBuff_len ;
00049 unsigned int _bytesRead ;
00050
00051 PPTConnection()
00052 : _timeout( 0 ),
00053 _inBuff( 0 ),
00054 _inBuff_len( 0 ),
00055 _bytesRead( 0 ) {}
00056
00057 virtual int readBuffer( char *inBuff,
00058 const unsigned int buff_size ) ;
00059 virtual int readChunkHeader( char *inBuff,
00060 unsigned int buff_size ) ;
00061 virtual void sendChunk( const string &buffer,
00062 map<string,string> &extensions ) ;
00063 virtual void receive( ostream &strm,
00064 const unsigned int len ) ;
00065
00066 protected:
00067 PPTConnection( int timeout )
00068 : _timeout( timeout ),
00069 _inBuff( 0 ),
00070 _inBuff_len( 0 ),
00071 _bytesRead( 0 ) {}
00072
00073 virtual int readBufferNonBlocking( char *inBuff,
00074 const unsigned int buff_size );
00075
00076 virtual void send( const string &buffer ) ;
00077 virtual void read_extensions( map<string,string> &extensions,
00078 const string &xstr ) ;
00079 public:
00080 virtual ~PPTConnection() ;
00081
00082 virtual void initConnection() = 0 ;
00083 virtual void closeConnection() = 0 ;
00084
00085 virtual string exit() { return PPTProtocol::PPT_EXIT_NOW ; }
00086
00087 virtual void send( const string &buffer,
00088 map<string,string> &extensions ) ;
00089 virtual void sendExtensions( map<string,string> &extensions ) ;
00090 virtual void sendExit() ;
00091 virtual bool receive( map<string,string> &extensions,
00092 ostream *strm = 0 ) ;
00093
00094 virtual unsigned int getRecvChunkSize() ;
00095 virtual unsigned int getSendChunkSize() ;
00096
00097 virtual void dump( ostream &strm ) const ;
00098 } ;
00099
00100 #endif // PPTConnection_h
00101