00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: HTColumn.h,v 1.2 2009/12/23 02:59:56 zhangy Exp $ 00004 // 00005 // Description: 00006 // Class HTColumn. 00007 // Base class for the ntuple columns. This is abstract one, all 00008 // real things will be implemented it the classes for specific types. 00009 // 00010 // Environment: 00011 // Software developed for the BaBar Detector at the SLAC B-Factory. 00012 // 00013 // Author List: 00014 // Salnikov 00015 // 00016 // Copyright Information: 00017 // Copyright (C) 1997 Saclay 00018 // 00019 // History: 00020 // Migration for BESIII MDC 00021 // 00022 //------------------------------------------------------------------------ 00023 00024 #ifndef HTColumn_H 00025 #define HTColumn_H 00026 00027 00028 //------------- 00029 // C Headers -- 00030 //------------- 00031 extern "C" { 00032 } 00033 00034 //--------------- 00035 // C++ Headers -- 00036 //--------------- 00037 #include <iostream> 00038 #include <string> 00039 00040 //---------------------- 00041 // Base Class Headers -- 00042 //---------------------- 00043 00044 //------------------------------- 00045 // Collaborating Class Headers -- 00046 //------------------------------- 00047 00048 //------------------------------------ 00049 // Collaborating Class Declarations -- 00050 //------------------------------------ 00051 class HTColumnAcceptor ; 00052 00053 // --------------------- 00054 // -- Class Interface -- 00055 // --------------------- 00056 00057 class HTColumn { 00058 00059 //-------------------- 00060 // Declarations -- 00061 //-------------------- 00062 00063 // Typedefs, consts, and enums 00064 00065 //-------------------- 00066 // Instance Members -- 00067 //-------------------- 00068 00069 public: 00070 00071 // Constructors 00072 HTColumn( const std::string& label, 00073 const std::string& block=std::string(), 00074 const std::string& indexLabel=std::string() ); 00075 00076 // Copy Constructor 00077 HTColumn( const HTColumn& ); 00078 00079 // Destructor 00080 virtual ~HTColumn( ); 00081 00082 // Operators 00083 HTColumn& operator=(const HTColumn&) ; 00084 00085 // Selectors (const) 00086 virtual const std::string& label() const ; 00087 virtual const std::string& block() const ; 00088 virtual const std::string& indexLabel() const ; 00089 00090 // typeinfo 00091 virtual const std::string& typeName() const = 0 ; 00092 00093 // modifiers 00094 virtual void clearData() = 0 ; 00095 00096 virtual void print(/*std::ostream& out*/) const ; 00097 00098 protected: 00099 00100 // Helper functions 00101 00102 private: 00103 00104 // Friends 00105 00106 // Data members 00107 std::string _label ; 00108 std::string _block ; 00109 std::string _indexLabel ; 00110 00111 }; 00112 00113 #endif // HTColumn_H