00001 // ===================================================================== 00032 // ===================================================================== 00033 #ifndef CLDAQ__TINPUTOBJECTSOCKET_HH 00034 #define CLDAQ__TINPUTOBJECTSOCKET_HH 00035 00036 #include "Tglobals.h" 00037 #include "TObjectSocket.hh" 00038 #include "TInputObjectStream.hh" 00039 00040 class TStreamableObject; 00041 class TObjectFilter; 00042 class TDataRecord; 00043 class TDataSection; 00044 class TDataSegment; 00045 class TDataElement; 00046 class TInputObjectFilter; 00047 00048 00068 class TInputObjectSocket 00069 : public TObjectSocket, public TInputObjectStream 00070 { 00071 00072 private: 00073 enum { tDefaultBackLog = 5 }; 00074 00075 private: 00076 Tint theClientDescriptor; 00077 00078 public: 00079 TInputObjectSocket( Tint port = tDefaultPortNumber ); 00080 TInputObjectSocket( TInputObjectFilter* filter, Tint port = tDefaultPortNumber ); 00081 ~TInputObjectSocket(); 00082 00083 public: 00084 Tint Read( TStreamableObject& object ); 00085 00086 private: 00087 TDataRecord getDataRecord(); 00088 TDataSection getDataSection(); 00089 TDataSegment getDataSegment(); 00090 TDataElement getDataElement(); 00091 Tvoid readProperties( Tint& recsize, Tobject_t& type, Tstring& id, Tsize_t& entries ); 00092 Tvoid initialize(); 00093 00094 public: 00095 Tint GetClientDescriptor() const; 00096 // GetClientHostName() 00097 // GetClientPort() 00098 Tint OpenClient(); 00099 Tint CloseClient(); 00100 00101 }; 00102 00103 00104 inline Tint TInputObjectSocket::GetClientDescriptor() const 00105 { 00106 return theClientDescriptor; 00107 } 00108 00109 #endif