Socket.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 Socket_h
00034 #define Socket_h 1
00035
00036 #include <netinet/in.h>
00037
00038 #include <string>
00039
00040 using std::string ;
00041
00042 #include "BESObj.h"
00043
00044 class Socket : public BESObj
00045 {
00046 protected:
00047 int _socket ;
00048 bool _connected ;
00049 bool _listening ;
00050 string _ip ;
00051 unsigned int _port ;
00052 bool _addr_set ;
00053 public:
00054 Socket()
00055 : _socket( 0 ),
00056 _connected( false ),
00057 _listening( false ),
00058 _addr_set( false ) {}
00059 Socket( int socket,
00060 struct sockaddr *addr ) ;
00061 virtual ~Socket() { close() ; }
00062 virtual void connect() = 0 ;
00063 virtual bool isConnected() { return _connected ; }
00064 virtual void listen() = 0 ;
00065 virtual bool isListening() { return _listening ; }
00066 virtual void close() ;
00067 virtual void send( const string &str, int start, int end ) ;
00068 virtual int receive( char *inBuff, int inSize ) ;
00069 virtual void sync() ;
00070 virtual int getSocketDescriptor()
00071 {
00072 return _socket ;
00073 }
00074 unsigned int getPort()
00075 {
00076 return _port ;
00077 }
00078 string getIp()
00079 {
00080 return _ip ;
00081 }
00082
00083 virtual unsigned int getRecvBufferSize() = 0 ;
00084 virtual unsigned int getSendBufferSize() = 0 ;
00085
00086 virtual Socket * newSocket( int socket,
00087 struct sockaddr *addr ) = 0 ;
00088
00089 virtual bool allowConnection() = 0 ;
00090
00091 virtual void dump( ostream &strm ) const ;
00092 } ;
00093
00094 #endif // Socket_h
00095