Connection.h
Go to the documentation of this file.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 Connection_h
00034 #define Connection_h 1
00035
00036 #include <iostream>
00037 #include <string>
00038 #include <map>
00039
00040 using std::ostream ;
00041 using std::string ;
00042 using std::map ;
00043
00044 #include "BESObj.h"
00045 #include "Socket.h"
00046
00047 class Connection : public BESObj
00048 {
00049 protected:
00050 Socket *_mySock ;
00051 ostream *_out ;
00052 bool _brokenPipe ;
00053
00054 Connection()
00055 : _mySock( 0 ),
00056 _out( 0 ),
00057 _brokenPipe( false ) {}
00058
00059 virtual void send( const string &buffer ) = 0 ;
00060 virtual void sendChunk( const string &buffer,
00061 map<string,string> &extensions ) = 0 ;
00062 public:
00063 virtual ~Connection() {}
00064
00065 virtual void initConnection() = 0 ;
00066 virtual void closeConnection() = 0 ;
00067
00068 virtual string exit() = 0 ;
00069
00070 virtual void send( const string &buffer,
00071 map<string,string> &extensions ) = 0 ;
00072 virtual void sendExtensions( map<string,string> &extensions ) = 0 ;
00073 virtual void sendExit() = 0 ;
00074 virtual bool receive( map<string,string> &extensions,
00075 ostream *strm = 0 ) = 0 ;
00076
00077 virtual Socket * getSocket()
00078 {
00079 return _mySock ;
00080 }
00081
00082 virtual bool isConnected()
00083 {
00084 if( _mySock )
00085 return _mySock->isConnected() ;
00086 return false ;
00087 }
00088
00089 virtual void setOutputStream( ostream *strm )
00090 {
00091 _out = strm ;
00092 }
00093 virtual ostream * getOutputStream()
00094 {
00095 return _out ;
00096 }
00097
00098 virtual void brokenPipe()
00099 {
00100 _brokenPipe = true ;
00101 }
00102
00103 virtual unsigned int getRecvChunkSize() = 0 ;
00104 virtual unsigned int getSendChunkSize() = 0 ;
00105
00106 virtual void dump( ostream &strm ) const ;
00107 } ;
00108
00109 #endif // Connection_h
00110