00001 // ===================================================================== 00002 // $Id: TDataSection.hh,v 1.1.1.1 2003/06/27 02:56:41 goiwai Exp $ 00003 // $Name: CLDAQ-1-06-00 $ 00004 // ===================================================================== 00005 #ifndef __TDATASECTION_HH 00006 #define __TDATASECTION_HH 00007 00008 #include "Tglobals.h" 00009 #include "TStreamableObject.hh" 00010 #include "TDataSegmentList.hh" 00011 00012 class TOutputObjectStream; 00013 class TOutputObjectFile; 00014 class TOutputObjectSocket; 00015 class TOutputObjectSharedMemory; 00016 00017 class TDataSection 00018 : public TStreamableObject, public TDataSegmentList 00019 { 00020 00021 public: 00022 TDataSection( const Tstring& id = TunknownID ); 00023 TDataSection( const TDataSection& right ); 00024 ~TDataSection(); 00025 00026 public: 00027 Tint GetRecordSize(); 00028 Tint Record( TOutputObjectStream* objectfile ); 00029 Tvoid Clear(); 00030 Tint Serialize( Tvoid* buffer ); 00031 00032 public: 00033 const TDataSection& operator=( const TDataSection& right ); 00034 Tbool operator==( const TDataSection& right ) const; 00035 Tbool operator!=( const TDataSection& right ) const; 00036 friend Tostream& operator<<( Tostream& tos, const TDataSection& right ); 00037 00038 public: 00039 Tbool FindDataSegment( const Tstring& id, TDataSegment& segment ) const; 00040 Tint FindDataSegment( const Tstring& id ) const; 00041 Tbool FindDataElement( const Tstring& segid, const Tstring& eleid, TDataElement& element ) const; 00042 Tint FindDataElement( const Tstring& segid, const Tstring& eleid ) const; 00043 Tbool FindDataElement( Tstring idset[ 2 ], TDataElement& element ) const; 00044 Tint FindDataElement( Tstring idset[ 2 ] ) const; 00045 Tbool FindDataElement( const TstringList& idset, TDataElement& element ) const; 00046 Tint FindDataElement( const TstringList& idset ) const; 00047 00048 private: 00049 Tint record( TOutputObjectFile* ofile ); 00050 Tint record( TOutputObjectSocket* osocket ); 00051 Tint record( TOutputObjectSharedMemory* omemory ); 00052 00053 }; 00054 00055 #endif