00001 // ===================================================================== 00032 // ===================================================================== 00033 #ifndef CLDAQ__TINPUTOBJECTSHAREDMEMORY_HH 00034 #define CLDAQ__TINPUTOBJECTSHAREDMEMORY_HH 00035 00036 #include "Tglobals.h" 00037 #include "TObjectSharedMemory.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 TInputObjectSharedMemory 00069 : public TObjectSharedMemory, public TInputObjectStream 00070 { 00071 00072 private: 00073 Tbool theReadSuccessFlag; 00074 00075 public: 00076 TInputObjectSharedMemory( Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00077 TInputObjectSharedMemory( TInputObjectFilter* filter, Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00078 ~TInputObjectSharedMemory(); 00079 00080 public: 00081 Tint Read( TStreamableObject& object ); 00082 00083 public: 00084 Tbool IsReadSuccess() const; 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 }; 00093 00094 inline Tbool TInputObjectSharedMemory::IsReadSuccess() const 00095 { 00096 return theReadSuccessFlag; 00097 } 00098 00099 #endif