00001 // ===================================================================== 00029 // ===================================================================== 00030 #ifndef __TINPUTOBJECTSHAREDMEMORY_HH 00031 #define __TINPUTOBJECTSHAREDMEMORY_HH 00032 00033 #include "Tglobals.h" 00034 #include "TObjectSharedMemory.hh" 00035 #include "TInputObjectStream.hh" 00036 00037 class TStreamableObject; 00038 class TObjectFilter; 00039 class TDataRecord; 00040 class TDataSection; 00041 class TDataSegment; 00042 class TDataElement; 00043 class TInputObjectFilter; 00044 00045 00065 class TInputObjectSharedMemory 00066 : public TObjectSharedMemory, public TInputObjectStream 00067 { 00068 00069 private: 00070 Tbool theReadSuccessFlag; 00071 00072 public: 00073 TInputObjectSharedMemory( Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00074 TInputObjectSharedMemory( TInputObjectFilter* filter, Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00075 ~TInputObjectSharedMemory(); 00076 00077 public: 00078 Tint Read( TStreamableObject& object ); 00079 00080 public: 00081 Tbool IsReadSuccess() const; 00082 00083 private: 00084 TDataRecord getDataRecord(); 00085 TDataSection getDataSection(); 00086 TDataSegment getDataSegment(); 00087 TDataElement getDataElement(); 00088 Tvoid readProperties( Tint& recsize, Tobject_t& type, Tstring& id, Tsize_t& entries ); 00089 }; 00090 00091 inline Tbool TInputObjectSharedMemory::IsReadSuccess() const 00092 { 00093 return theReadSuccessFlag; 00094 } 00095 00096 #endif