00001
00002
00003
00004
00005 #ifndef __TDATARECORD_HH
00006 #define __TDATARECORD_HH
00007
00008 #include "Tglobals.h"
00009 #include "TStreamableObject.hh"
00010 #include "TDataSectionList.hh"
00011
00012 class TOutputObjectStream;
00013
00014 class TDataRecord
00015 : public TStreamableObject, public TDataSectionList
00016 {
00017
00018 public:
00019 TDataRecord( const Tstring& id = TunknownID );
00020 TDataRecord( const TDataRecord& right );
00021 ~TDataRecord();
00022
00023 public:
00024 Tint GetRecordSize();
00025 Tint Record( TOutputObjectStream* output );
00026 Tvoid Clear();
00027 Tint Serialize( Tvoid* buffer );
00028
00029 public:
00030 const TDataRecord& operator=( const TDataRecord& right );
00031 Tbool operator==( const TDataRecord& right ) const;
00032 Tbool operator!=( const TDataRecord& right ) const;
00033 friend Tostream& operator<<( Tostream& tos, const TDataRecord& right );
00034
00035 public:
00036 Tbool FindDataSection( const Tstring& id, TDataSection& section ) const;
00037 Tint FindDataSection( const Tstring& id ) const;
00038 Tbool FindDataSegment( const Tstring& secid, const Tstring& segid, TDataSegment& segment ) const;
00039 Tint FindDataSegment( const Tstring& secid, const Tstring& segid ) const;
00040 Tbool FindDataSegment( Tstring idset[ 2 ], TDataSegment& segment ) const;
00041 Tint FindDataSegment( Tstring idset[ 2 ] ) const;
00042 Tbool FindDataSegment( const TstringList& idset, TDataSegment& segment ) const;
00043 Tint FindDataSegment( const TstringList& idset ) const;
00044 Tbool FindDataElement( const Tstring& secid, const Tstring& segid, const Tstring& eleid, TDataElement& element ) const;
00045 Tint FindDataElement( const Tstring& secid, const Tstring& segid, const Tstring& eleid ) const;
00046 Tbool FindDataElement( Tstring idset[ 3 ], TDataElement& element ) const;
00047 Tint FindDataElement( Tstring idset[ 3 ] ) const;
00048 Tbool FindDataElement( const TstringList& idset, TDataElement& element ) const;
00049 Tint FindDataElement( const TstringList& idset ) const;
00050
00051 private:
00052 Tint record( TOutputObjectFile* ofile );
00053 Tint record( TOutputObjectSocket* osocket );
00054 Tint record( TOutputObjectSharedMemory* omemory );
00055
00056 };
00057
00058 #endif