00001
00002
00003
00004
00005
00006
00007 #ifndef EVENT_LCCOLLECTION_H
00008 #define EVENT_LCCOLLECTION_H 1
00009
00010 #include <string>
00011
00012 #include "EVENT/LCParameters.h"
00013 #include "Exceptions.h"
00014
00015 namespace EVENT {
00016
00017 class LCObject;
00018
00029 class LCCollection {
00030
00031 public:
00033 virtual ~LCCollection() { ; }
00034
00038 virtual int getNumberOfElements() const = 0;
00039
00042 virtual const std::string & getTypeName() const = 0;
00043
00046 virtual LCObject * getElementAt(int index) const = 0;
00047
00062 virtual int getFlag() const = 0;
00063
00068 static const int BITTransient = 16 ;
00069 static const int BITDefault = 17 ;
00070 static const int BITSubset = 18 ;
00074 virtual bool isTransient() const = 0;
00075
00080 virtual bool isDefault() const = 0;
00081
00087 virtual bool isSubset() const = 0;
00088
00094 virtual void addElement(LCObject * obj) = 0;
00095
00101 virtual void removeElementAt(int i) = 0;
00102
00105 virtual void setFlag(int flag) = 0;
00106
00109 virtual const LCParameters & getParameters() const = 0;
00110
00114 virtual LCParameters & parameters() = 0;
00115 };
00116 }
00117 #endif