00001
00002
00003 #ifndef _Rod_0_SCTDAL_0__H_
00004 #define _Rod_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 RodMUR;
00019 }
00020 namespace SCTDAL {
00021 class Slave;
00022 }
00023
00024 namespace SCTDAL {
00029 class Rod : public virtual ::DalObject {
00030
00031 friend class ::Configuration;
00032
00033 public:
00034
00035 Rod(::Configuration& conf, ::ConfigObject& obj);
00036 virtual ~Rod();
00037
00045 static Rod * 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<Rod*>(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 unsigned short m_id;
00076 unsigned short m_slot;
00077 std::vector<const SCTDAL::Slave*> m_slaves;
00078 std::vector<const SCTDAL::RodMUR*> m_rodMURs;
00079
00080
00081 public:
00082
00088 unsigned short get_id() const { check_init(); return m_id; }
00089 unsigned short id() const { check_init(); return m_id; }
00090
00096 bool set_id(unsigned short value) { clear(); return p_obj.set_by_val("id", value); }
00097
00102 unsigned short get_slot() const { check_init(); return m_slot; }
00103 unsigned short slot() const { check_init(); return m_slot; }
00104
00109 bool set_slot(unsigned short value) { clear(); return p_obj.set_by_val("slot", value); }
00110
00115 const std::vector<const SCTDAL::Slave*>& get_slaves() const { check_init(); return m_slaves; }
00116 const std::vector<const SCTDAL::Slave*>& slaves() const { check_init(); return m_slaves; }
00117
00122 bool set_slaves(const std::vector<const SCTDAL::Slave*>& value);
00123
00128 const std::vector<const SCTDAL::RodMUR*>& get_rodMURs() const { check_init(); return m_rodMURs; }
00129 const std::vector<const SCTDAL::RodMUR*>& rodMURs() const { check_init(); return m_rodMURs; }
00130
00135 bool set_rodMURs(const std::vector<const SCTDAL::RodMUR*>& value);
00136
00137 };
00138
00139
00140
00141 std::ostream& operator<<(std::ostream&, const Rod*);
00142 std::ostream& operator<<(std::ostream&, const Rod&);
00143
00144 typedef std::vector<const Rod*>::const_iterator RodIterator;
00145
00146 }
00147
00148 #endif