00001 // ===================================================================== 00048 // ===================================================================== 00049 #ifndef CLDAQ__TINPUTOBJECTFILE_HH 00050 #define CLDAQ__TINPUTOBJECTFILE_HH 00051 00052 #include "Tglobals.h" 00053 #include "TObjectFile.hh" 00054 #include "TInputObjectStream.hh" 00055 00056 class TStreamableObject; 00057 class TDataRecord; 00058 class TDataSection; 00059 class TDataSegment; 00060 class TDataElement; 00061 class TInputObjectFilter; 00062 00063 00083 class TInputObjectFile 00084 : public TObjectFile, public TInputObjectStream 00085 { 00086 00087 public: 00088 TInputObjectFile( const Tstring& filename, const Tstring& mode = "r" ); 00089 TInputObjectFile( TInputObjectFilter* filter, const Tstring& filename, const Tstring& mode = "r" ); 00090 virtual ~TInputObjectFile(); 00091 00092 public: 00093 virtual Tint Read( TStreamableObject& object ); 00094 00095 public: 00097 virtual TDataRecord operator[]( const Tstring& id ); 00098 00100 virtual TDataRecord operator[]( Tint index ); 00101 00102 protected: 00103 virtual TDataRecord getDataRecord(); 00104 virtual TDataSection getDataSection(); 00105 virtual TDataSegment getDataSegment(); 00106 virtual TDataElement getDataElement(); 00107 virtual Tvoid readProperties( Tint& recsize, Tobject_t& type, Tstring& id, Tsize_t& entries ); 00108 00109 #ifdef __CLDAQ_ROOT_DLL 00110 ClassDef(TInputObjectFile,0) 00111 #endif 00112 00113 }; 00114 00115 #endif