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