00001
00031
00032 #ifndef __TDATARECORD_HH
00033 #define __TDATARECORD_HH
00034
00035 #include "Tglobals.h"
00036 #include "TStreamableObject.hh"
00037 #include "TDataSectionList.hh"
00038
00039 class TOutputObjectStream;
00040
00041
00061 class TDataRecord
00062 : public TStreamableObject, public TDataSectionList
00063 {
00064
00065 public:
00066 TDataRecord( const Tstring& id = TunknownID );
00067 TDataRecord( const TDataRecord& right );
00068 ~TDataRecord();
00069
00070 public:
00071 Tint GetRecordSize();
00072 Tint Record( TOutputObjectStream* output );
00073 Tvoid Clear();
00074 Tint Serialize( Tvoid* buffer );
00075
00076 public:
00077 const TDataRecord& operator=( const TDataRecord& right );
00078 Tbool operator==( const TDataRecord& right ) const;
00079 Tbool operator!=( const TDataRecord& right ) const;
00080
00081
00082
00083
00084
00085 const TDataSection& operator[]( Tint n ) const;
00086 TDataSection& operator[]( Tint n );
00087 const TDataSection& operator[]( const Tstring& id ) const;
00088 TDataSection& operator[]( const Tstring& id );
00089 friend Tostream& operator<<( Tostream& tos, const TDataRecord& right );
00090
00091 public:
00092 TDataRecord Test( Tint somevalue = 0 );
00093
00094 public:
00095 Tbool FindDataSection( const Tstring& id, TDataSection& section ) const;
00096 Tint FindDataSection( const Tstring& id ) const;
00097 Tbool FindDataSegment( const Tstring& secid, const Tstring& segid, TDataSegment& segment ) const;
00098 Tint FindDataSegment( const Tstring& secid, const Tstring& segid ) const;
00099 Tbool FindDataSegment( Tstring idset[ 2 ], TDataSegment& segment ) const;
00100 Tint FindDataSegment( Tstring idset[ 2 ] ) const;
00101 Tbool FindDataSegment( const TstringList& idset, TDataSegment& segment ) const;
00102 Tint FindDataSegment( const TstringList& idset ) const;
00103 Tbool FindDataElement( const Tstring& secid, const Tstring& segid, const Tstring& eleid, TDataElement& element ) const;
00104 Tint FindDataElement( const Tstring& secid, const Tstring& segid, const Tstring& eleid ) const;
00105 Tbool FindDataElement( Tstring idset[ 3 ], TDataElement& element ) const;
00106 Tint FindDataElement( Tstring idset[ 3 ] ) const;
00107 Tbool FindDataElement( const TstringList& idset, TDataElement& element ) const;
00108 Tint FindDataElement( const TstringList& idset ) const;
00109
00110 private:
00111 Tint record( TOutputObjectFile* ofile );
00112 Tint record( TOutputObjectSocket* osocket );
00113 Tint record( TOutputObjectSharedMemory* omemory );
00114
00115 };
00116
00117 #endif