00001 // ===================================================================== 00021 // ===================================================================== 00022 #ifndef __TINPUTOBJECTSHAREDMEMORY_HH 00023 #define __TINPUTOBJECTSHAREDMEMORY_HH 00024 00025 #include "Tglobals.h" 00026 #include "TObjectSharedMemory.hh" 00027 #include "TInputObjectStream.hh" 00028 00029 class TStreamableObject; 00030 class TObjectFilter; 00031 class TDataRecord; 00032 class TDataSection; 00033 class TDataSegment; 00034 class TDataElement; 00035 00036 00056 class TInputObjectSharedMemory 00057 : public TObjectSharedMemory, public TInputObjectStream 00058 { 00059 00060 private: 00061 Tbool theReadSuccessFlag; 00062 00063 public: 00064 TInputObjectSharedMemory( Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00065 TInputObjectSharedMemory( TObjectFilter* filter, Tint memsize = tDefaultMemorySize, Tint maxevt = tDefaultMaxEvent ); 00066 ~TInputObjectSharedMemory(); 00067 00068 public: 00069 Tint Read( TStreamableObject& object ); 00070 00071 public: 00072 Tbool IsReadSuccess() const; 00073 00074 private: 00075 TDataRecord getDataRecord(); 00076 TDataSection getDataSection(); 00077 TDataSegment getDataSegment(); 00078 TDataElement getDataElement(); 00079 Tvoid readProperties( Tint& recsize, Tobject_t& type, Tstring& id, Tsize_t& entries ); 00080 }; 00081 00082 inline Tbool TInputObjectSharedMemory::IsReadSuccess() const 00083 { 00084 return theReadSuccessFlag; 00085 } 00086 00087 #endif