|
Gaudi Framework, version v21r9 |
| Home | Generated: 3 May 2010 |
00001 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiKernel/GaudiKernel/NTupleImplementation.h,v 1.7 2006/12/10 20:29:17 leggett Exp $ 00002 #ifndef GAUDIKERNEL_NTUPLEIMP_H 00003 #define GAUDIKERNEL_NTUPLEIMP_H 00004 00005 // Framework include files 00006 #include "GaudiKernel/NTuple.h" 00007 #include "GaudiKernel/Kernel.h" 00008 00009 // Forward declarations 00010 class INTupleSvc; 00011 class IConversionSvc; 00012 00013 namespace NTuple { 00014 // Concrete N tuple class definition 00015 class GAUDI_API TupleImp : public Tuple { 00016 protected: 00018 ItemContainer m_items; 00020 bool m_isBooked; 00022 std::string m_title; 00024 ISelectStatement* m_pSelector; 00026 char* m_buffer; 00028 INTupleSvc* m_ntupleSvc; 00030 IConversionSvc* m_cnvSvc; 00031 private: 00033 TupleImp(const TupleImp&) ; 00034 00035 public: 00037 virtual INTupleItem* i_find(const std::string& name) const; 00038 public: 00040 TupleImp( const std::string& title); 00042 virtual ~TupleImp(); 00044 ItemContainer& items() { 00045 return m_items; 00046 } 00048 const ItemContainer& items() const { 00049 return m_items; 00050 } 00052 virtual const std::string& title() const { 00053 return m_title; 00054 } 00056 virtual const INTupleItem* find(const std::string& name) const { 00057 return i_find(name); 00058 } 00060 virtual INTupleItem* find(const std::string& name) { 00061 return i_find(name); 00062 } 00064 char* buffer() { 00065 return m_buffer; 00066 } 00068 const char* buffer() const { 00069 return m_buffer; 00070 } 00072 IConversionSvc* conversionService() const { 00073 return m_cnvSvc; 00074 } 00076 void setConversionService( IConversionSvc* svc ) { 00077 m_cnvSvc = svc; 00078 } 00080 INTupleSvc* tupleService() const { 00081 return m_ntupleSvc; 00082 } 00084 void setTupleService( INTupleSvc* svc ) { 00085 m_ntupleSvc = svc; 00086 } 00088 virtual StatusCode attachSelector(ISelectStatement* sel); 00090 virtual ISelectStatement* selector(); 00092 virtual void setBuffer(char* buff); 00094 virtual void reset(); 00096 virtual StatusCode add(INTupleItem* item); 00098 virtual StatusCode remove(INTupleItem* item); 00100 virtual StatusCode remove(const std::string& name); 00102 virtual StatusCode write(); 00104 virtual StatusCode writeRecord(); 00106 virtual StatusCode read(); 00108 virtual StatusCode readRecord(); 00110 virtual StatusCode save(); 00111 00112 }; // end class definition: Tuple 00113 00114 00115 // Concrete column wise N tuple class definition 00116 class ColumnWiseTuple : public TupleImp { 00117 public: 00119 ColumnWiseTuple(const std::string& title ) : TupleImp(title) { 00120 } 00122 virtual ~ColumnWiseTuple() { 00123 } 00125 virtual const CLID& clID() const { 00126 return ColumnWiseTuple::classID(); 00127 } 00129 static const CLID& classID() { 00130 return CLID_ColumnWiseTuple; 00131 } 00132 }; // end class definition: ColumnWiseTuple 00133 00134 // Concrete column wise N tuple class definition 00135 class RowWiseTuple : public TupleImp { 00136 public: 00138 RowWiseTuple( const std::string& title ) : TupleImp(title) { 00139 } 00141 virtual ~RowWiseTuple() { 00142 } 00144 virtual const CLID& clID() const { 00145 return RowWiseTuple::classID(); 00146 } 00148 static const CLID& classID() { 00149 return CLID_RowWiseTuple; 00150 } 00151 }; // end class definition: RowWiseTuple 00152 } // end name space NTuple 00153 00154 #endif // GAUDIKERNEL_NTUPLEIMP_H