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