00001
00002 #ifndef EVENT_LCGENERICOBJECTIMPL_H
00003 #define EVENT_LCGENERICOBJECTIMPL_H 1
00004
00005 #include "EVENT/LCGenericObject.h"
00006 #include "AccessChecked.h"
00007 #include <vector>
00008
00009 namespace IMPL {
00010
00018 class LCGenericObjectImpl : public EVENT::LCGenericObject, public AccessChecked {
00019
00020 public:
00021
00024 LCGenericObjectImpl() ;
00025
00028 LCGenericObjectImpl(int nInt, int nFloat, int nDouble) ;
00029
00031 virtual ~LCGenericObjectImpl() { ; }
00032
00033 virtual int id() const { return simpleUID() ; }
00034
00037 virtual int getNInt() const;
00038
00041 virtual int getNFloat() const;
00042
00045 virtual int getNDouble() const;
00046
00049 virtual int getIntVal(int index) const;
00050
00053 virtual float getFloatVal(int index) const;
00054
00057 virtual double getDoubleVal(int index) const;
00058
00059
00060
00063 virtual void setIntVal(unsigned index, int value) ;
00064
00067 virtual void setFloatVal(unsigned index, float value) ;
00068
00071 virtual void setDoubleVal(unsigned index, double value) ;
00072
00077 virtual bool isFixedSize() const;
00078
00081 virtual const std::string getTypeName() const ;
00082
00087 virtual const std::string getDataDescription() const ;
00088
00089
00090 protected:
00091
00092 std::vector<int> _intVec{} ;
00093 std::vector<float> _floatVec{} ;
00094 std::vector<double> _doubleVec{} ;
00095 bool _isFixedSize{false} ;
00096
00097 static std::string _typeName ;
00098 static std::string _dataDescription ;
00099
00100 };
00101 }
00102 #endif