00001 // ===================================================================== 00021 // ===================================================================== 00022 #ifndef __TINPUTOBJECTSOCKET_HH 00023 #define __TINPUTOBJECTSOCKET_HH 00024 00025 #include "Tglobals.h" 00026 #include "TObjectSocket.hh" 00027 #include "TInputObjectStream.hh" 00028 00029 class TStreamableObject; 00030 class TObjectFilter; 00031 class TDataRecord; 00032 class TDataSection; 00033 class TDataSegment; 00034 class TDataElement; 00035 00036 00056 class TInputObjectSocket 00057 : public TObjectSocket, public TInputObjectStream 00058 { 00059 00060 private: 00061 enum { tDefaultBackLog = 5 }; 00062 00063 private: 00064 Tint theClientDescriptor; 00065 00066 public: 00067 TInputObjectSocket( Tint port = tDefaultPortNumber ); 00068 TInputObjectSocket( TObjectFilter* filter, Tint port = tDefaultPortNumber ); 00069 ~TInputObjectSocket(); 00070 00071 public: 00072 Tint Read( TStreamableObject& object ); 00073 00074 private: 00075 TDataRecord getDataRecord(); 00076 TDataSection getDataSection(); 00077 TDataSegment getDataSegment(); 00078 TDataElement getDataElement(); 00079 Tvoid readProperties( Tint& recsize, Tobject_t& type, Tstring& id, Tsize_t& entries ); 00080 Tvoid initialize(); 00081 00082 public: 00083 Tint GetClientDescriptor() const; 00084 // GetClientHostName() 00085 // GetClientPort() 00086 Tint OpenClient(); 00087 Tint CloseClient(); 00088 00089 }; 00090 00091 00092 inline Tint TInputObjectSocket::GetClientDescriptor() const 00093 { 00094 return theClientDescriptor; 00095 } 00096 00097 #endif