SensorProperty.h

00001 #ifndef _SENSORPROPERTY_H
00002 #define _SENSORPROPERTY_H
00003 // -------------------------------------------------------------------------
00004 #include <gtkmm.h>
00005 #include <UniSetTypes.h>
00006 #include <MessageType.h>
00007 #include <SensorProp.h>
00008 #include <Connector.h>
00009 // -------------------------------------------------------------------------
00010 class GuiPM;
00011 class USensorProperty;
00012 // -------------------------------------------------------------------------
00013 namespace Glib
00014 {
00015 //TODO write documentation
00016 template <>
00017 class Property<USensorProperty>
00018 {
00019 public:
00020 //  Property(Gtk::Widget& targ, const Glib::ustring& name, GuiPM **guipm_ptr, Glib::ustring uniset_name = "DefaultSensor") :
00021     Property(Gtk::Widget& targ, const Glib::ustring& name, ConnectorRef connector_ref, Glib::ustring uniset_name = "DefaultSensor") :
00022     m_property(&targ, name, connector_ref, uniset_name)
00023 //  ,sens_name(&targ, name+"-sensor-name")
00024 //  ,node_name(&targ, name+"-node-name")
00025 //  ,sens_id(&targ, name+"-sensor-id")
00026 //  ,node_id(&targ, name+"-node-id")
00027 //  ,stype(&targ,name+"-stype")
00028     {}
00029 
00030     ~Property(){}
00031 
00032     void set_sens_name(std::string name) {m_property.set_sens_name(name); }
00033     void set_node_name(std::string name) {m_property.set_node_name(name); }
00034     void set_sens_id(UniSetTypes::ObjectId id) {m_property.set_sens_id(id); }
00035     void set_node_id(UniSetTypes::ObjectId id) {m_property.set_node_id(id); }
00036     void set_stype(std::string type) {m_property.set_stype(type); }
00037     UniSetTypes::ObjectId get_sens_id() { return m_property.get_sens_id();}
00038     Property& operator= (const Property& property) 
00039     {
00040         if (this == &property) return *this;
00041         m_property.sens_name = property.m_property.sens_name.get_value();
00042         m_property.node_name = property.m_property.node_name.get_value();
00043         m_property.sens_id = property.m_property.sens_id.get_value();
00044         m_property.node_id = property.m_property.node_id.get_value();
00045         m_property.stype = property.m_property.stype.get_value();
00046         return *this;
00047     }
00048 
00049     void ask(UniversalIO::UIOCommand cmd) { m_property.ask(cmd); }
00050     void autoAsk(UniversalIO::UIOCommand cmd) {m_property.autoAsk(cmd); }
00051 
00052     float get_current_value() {return m_property.get_current_value();}
00053 
00054     SensorProp m_property;
00055 /*  PropertyProxy<std::string> sens_name;
00056     PropertyProxy<std::string> node_name;
00057     PropertyProxy<UniSetTypes::ObjectId> sens_id;
00058     PropertyProxy<UniSetTypes::ObjectId> node_id;
00059     PropertyProxy<std::string> stype;*/
00060 protected:
00061 
00062 private:
00063     Property();
00064 
00065 };
00066 
00067 //temporary solution
00068 template <>
00069 class PropertyProxy<USensorProperty>
00070 {
00071 public:
00072     PropertyProxy(Property<USensorProperty> property) :
00073         property_(&property.m_property)
00074     {}
00075 
00076     ~PropertyProxy() {}
00077 
00078     void set_sens_name(std::string name) {property_->set_sens_name(name); }
00079     void set_node_name(std::string name) {property_->set_node_name(name); }
00080     void set_sens_id(UniSetTypes::ObjectId id) {property_->set_sens_id(id); }
00081     void set_node_id(UniSetTypes::ObjectId id) {property_->set_node_id(id); }
00082     void set_stype(std::string type) {property_->set_stype(type); }
00083     UniSetTypes::ObjectId get_sens_id() { return property_->get_sens_id();}
00084 
00085     PropertyProxy& operator=(const Property<USensorProperty>& property) 
00086     {
00087         //if (this == &property) return *this;
00088         property_->sens_name = property.m_property.sens_name.get_value();
00089         property_->node_name = property.m_property.node_name.get_value();
00090         property_->sens_id = property.m_property.sens_id.get_value();
00091         property_->node_id = property.m_property.node_id.get_value();
00092         property_->stype = property.m_property.stype.get_value();
00093         return *this;
00094     }
00095 
00096     void ask(UniversalIO::UIOCommand cmd) { property_->ask(cmd); }
00097     void autoAsk(UniversalIO::UIOCommand cmd) {property_->autoAsk(cmd); }
00098 
00099     float get_current_value() {return property_->get_current_value();}
00100 
00101     SensorProp* property_;
00102 protected:
00103 
00104 private:
00105     PropertyProxy();
00106 
00107 };
00108 }
00109 #endif

Документация по UniWidgets. Последние изменения: Fri Oct 10 09:57:49 2014. Создано системой  doxygen 1.5.9