00001
00002
00003 #ifndef _Power_0_SCTDAL_0__H_
00004 #define _Power_0_SCTDAL_0__H_
00005
00006 #include <iostream>
00007 #include <string>
00008 #include <map>
00009 #include <vector>
00010
00011 #include <config/Configuration.h>
00012 #include <config/DalObject.h>
00013
00014
00015
00016
00017 namespace SCTDAL {
00018 class PowerCrate;
00019 }
00020 namespace SCTDAL {
00021 class PowerParam;
00022 }
00023
00024 namespace SCTDAL {
00029 class Power : public virtual ::DalObject {
00030
00031 friend class ::Configuration;
00032
00033 public:
00034
00035 Power(::Configuration& conf, ::ConfigObject& obj);
00036 virtual ~Power();
00037
00045 static Power * create(::Configuration& conf, const std::string& id = "");
00046
00052 bool destroy(::Configuration& conf);
00053
00054
00055 public:
00056
00057 static const std::string s_class_name;
00058 virtual void init(bool init_children);
00059
00060
00061 private:
00062
00063 void check_init() const {if(!p_was_read) const_cast<Power*>(this)->init(false);}
00064 static void update(::Configuration& conf, const ::ConfigurationChange * change);
00065 static void reset(::Configuration& conf, bool re_initialise_obj);
00066
00067
00068 public:
00069
00070 virtual void print(unsigned int, bool, std::ostream&) const;
00071
00072
00073 private:
00074
00075 std::vector<const SCTDAL::PowerParam*> m_defaults;
00076 std::vector<const SCTDAL::PowerCrate*> m_crates;
00077
00078
00079 public:
00080
00085 const std::vector<const SCTDAL::PowerParam*>& get_defaults() const { check_init(); return m_defaults; }
00086 const std::vector<const SCTDAL::PowerParam*>& defaults() const { check_init(); return m_defaults; }
00087
00092 bool set_defaults(const std::vector<const SCTDAL::PowerParam*>& value);
00093
00098 const std::vector<const SCTDAL::PowerCrate*>& get_crates() const { check_init(); return m_crates; }
00099 const std::vector<const SCTDAL::PowerCrate*>& crates() const { check_init(); return m_crates; }
00100
00105 bool set_crates(const std::vector<const SCTDAL::PowerCrate*>& value);
00106
00107 };
00108
00109
00110
00111 std::ostream& operator<<(std::ostream&, const Power*);
00112 std::ostream& operator<<(std::ostream&, const Power&);
00113
00114 typedef std::vector<const Power*>::const_iterator PowerIterator;
00115
00116 }
00117
00118 #endif