00001 // ===================================================================== 00036 // ===================================================================== 00037 #ifndef CLDAQ__TINPUTOBJECTSHAREDMEMORY_HH 00038 #define CLDAQ__TINPUTOBJECTSHAREDMEMORY_HH 00039 00040 #include "Tglobals.h" 00041 #include "TObjectSharedMemory.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 TInputObjectSharedMemory 00073 : public TObjectSharedMemory, public TInputObjectStream 00074 { 00075 00076 private: 00077 Tbool theReadSuccessFlag; 00078 00079 public: 00080 TInputObjectSharedMemory( Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00081 TInputObjectSharedMemory( TInputObjectFilter* filter, Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00082 ~TInputObjectSharedMemory(); 00083 00084 public: 00085 Tint Read( TStreamableObject& object ); 00086 00087 public: 00088 Tbool IsReadSuccess() const; 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 #ifdef __CLDAQ_ROOT_DLL 00097 ClassDef(TInputObjectSharedMemory,0) 00098 #endif 00099 00100 }; 00101 00102 inline Tbool TInputObjectSharedMemory::IsReadSuccess() const 00103 { 00104 return theReadSuccessFlag; 00105 } 00106 00107 #endif