00001
00002
00003 #ifndef _SCT_Module_0_SCTDAL_0__H_
00004 #define _SCT_Module_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 SCT_Chip;
00019 }
00020
00021 namespace SCTDAL {
00026 class SCT_Module : public virtual ::DalObject {
00027
00028 friend class ::Configuration;
00029
00030 public:
00031
00032 SCT_Module(::Configuration& conf, ::ConfigObject& obj);
00033 virtual ~SCT_Module();
00034
00042 static SCT_Module * create(::Configuration& conf, const std::string& id = "");
00043
00049 bool destroy(::Configuration& conf);
00050
00051
00052 public:
00053
00054 static const std::string s_class_name;
00055 virtual void init(bool init_children);
00056
00057
00058 private:
00059
00060 void check_init() const {if(!p_was_read) const_cast<SCT_Module*>(this)->init(false);}
00061 static void update(::Configuration& conf, const ::ConfigurationChange * change);
00062 static void reset(::Configuration& conf, bool re_initialise_obj);
00063
00064
00065 public:
00066
00067 virtual void print(unsigned int, bool, std::ostream&) const;
00068
00069
00070 private:
00071
00072 std::string m_sn;
00073 std::string m_source;
00074 std::string m_location;
00075 bool m_active;
00076 unsigned short m_select;
00077 std::vector<const SCTDAL::SCT_Chip*> m_Chips;
00078
00079
00080 public:
00081
00087 const std::string& get_sn() const { check_init(); return m_sn; }
00088 const std::string& sn() const { check_init(); return m_sn; }
00089
00095 bool set_sn(const std::string& value) { clear(); return p_obj.set_by_ref("sn", value); }
00096
00101 const std::string& get_source() const { check_init(); return m_source; }
00102 const std::string& source() const { check_init(); return m_source; }
00103
00108 bool set_source(const std::string& value) { clear(); return p_obj.set_by_ref("source", value); }
00109
00114 const std::string& get_location() const { check_init(); return m_location; }
00115 const std::string& location() const { check_init(); return m_location; }
00116
00121 bool set_location(const std::string& value) { clear(); return p_obj.set_by_ref("location", value); }
00122
00128 bool get_active() const { check_init(); return m_active; }
00129 bool active() const { check_init(); return m_active; }
00130
00136 bool set_active(bool value) { clear(); return p_obj.set_by_val("active", value); }
00137
00143 unsigned short get_select() const { check_init(); return m_select; }
00144 unsigned short select() const { check_init(); return m_select; }
00145
00151 bool set_select(unsigned short value) { clear(); return p_obj.set_by_val("select", value); }
00152
00158 const std::vector<const SCTDAL::SCT_Chip*>& get_Chips() const { check_init(); return m_Chips; }
00159 const std::vector<const SCTDAL::SCT_Chip*>& Chips() const { check_init(); return m_Chips; }
00160
00166 bool set_Chips(const std::vector<const SCTDAL::SCT_Chip*>& value);
00167
00168 };
00169
00170
00171
00172 std::ostream& operator<<(std::ostream&, const SCT_Module*);
00173 std::ostream& operator<<(std::ostream&, const SCT_Module&);
00174
00175 typedef std::vector<const SCT_Module*>::const_iterator SCT_ModuleIterator;
00176
00177 }
00178
00179 #endif