00001 // ===================================================================== 00041 // ===================================================================== 00042 #ifndef __TINPUTOBJECTFILE_HH 00043 #define __TINPUTOBJECTFILE_HH 00044 00045 #include "Tglobals.h" 00046 #include "TObjectFile.hh" 00047 #include "TInputObjectStream.hh" 00048 00049 class TStreamableObject; 00050 class TDataRecord; 00051 class TDataSection; 00052 class TDataSegment; 00053 class TDataElement; 00054 class TInputObjectFilter; 00055 00056 00076 class TInputObjectFile 00077 : public TObjectFile, public TInputObjectStream 00078 { 00079 00080 public: 00081 TInputObjectFile( const Tstring& filename, const Tstring& mode = "r" ); 00082 TInputObjectFile( TInputObjectFilter* filter, const Tstring& filename, const Tstring& mode = "r" ); 00083 virtual ~TInputObjectFile(); 00084 00085 public: 00086 virtual Tint Read( TStreamableObject& object ); 00087 00088 public: 00090 virtual TDataRecord operator[]( const Tstring& id ); 00091 00093 virtual TDataRecord operator[]( Tint index ); 00094 00095 protected: 00096 virtual TDataRecord getDataRecord(); 00097 virtual TDataSection getDataSection(); 00098 virtual TDataSegment getDataSegment(); 00099 virtual TDataElement getDataElement(); 00100 virtual Tvoid readProperties( Tint& recsize, Tobject_t& type, Tstring& id, Tsize_t& entries ); 00101 00102 }; 00103 00104 #endif