|
UniWidgets
1.2.0
|
00001 #ifndef _CONNECTOR_H 00002 #define _CONNECTOR_H 00003 // ------------------------------------------------------------------------- 00004 #include <memory> 00005 #include <UniSetTypes.h> 00006 #include <UInterface.h> 00007 #include <MessageType.h> 00008 #include <USignals.h> 00009 #include <sigc++/sigc++.h> 00010 // ------------------------------------------------------------------------- 00011 class CheckedSignal; 00012 class ConfirmSignal; 00013 class ConnectorRef; 00014 class CoreConnector; 00015 // ------------------------------------------------------------------------- 00023 class Connector 00024 { 00025 public: 00026 virtual ~Connector() {} 00027 00028 /* Signals */ 00029 virtual sigc::signal<void>& signal_connected() = 0; 00030 virtual sigc::signal<void>& signal_disconnected() = 0; 00031 virtual sigc::signal<void>& signal_startup() = 0; 00032 virtual sigc::signal<void, UniversalIO::UIOCommand>& signal_ask_sensors() = 0; 00033 virtual sigc::signal<void, UniSetTypes::SensorMessage*>& signal_sensor_info() = 0; 00035 virtual CheckedSignal& signal_checked() = 0; 00036 virtual ConfirmSignal& signal_confirm() = 0; 00037 virtual USignals::SigController& signals() = 0; 00039 /* Methods */ 00040 virtual bool connected() = 0; 00042 virtual std::shared_ptr<UInterface> get_uin() = 0; 00043 virtual UniSetTypes::ObjectId get_id() = 0; 00046 virtual void ask_sensor(const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node, const UniversalIO::UIOCommand cmd) = 0; 00048 virtual long get_value(const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node) = 0; 00050 virtual long get_value_from_gpm(const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node) = 0; 00052 virtual float get_analog_value(const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node) = 0; 00054 virtual void save_value(const long value, const UniSetTypes::ObjectId id, const UniSetTypes::ObjectId node) = 0; 00056 virtual Glib::ustring get_type() const = 0; 00058 virtual void send(UniSetTypes::ObjectId name, UniSetTypes::TransportMessage& msg) = 0; 00067 static ConnectorRef create_connector(const Glib::ustring& type, const Glib::ustring& manager_name 00068 ,const Glib::ustring& alive_sensor 00069 ,const Glib::ustring& confirm_sensor 00070 ,const Glib::ustring& auto_confirm_time_str); 00072 static void destroy_connector(ConnectorRef& connector); 00073 }; 00074 // ------------------------------------------------------------------------- 00082 class ConnectorRef 00083 { 00084 public: 00085 ConnectorRef() : pointer_(NULL) {} 00086 ConnectorRef(const ConnectorRef& target); 00087 ConnectorRef(Connector* target); 00088 ConnectorRef& operator=(const ConnectorRef& target); 00089 Connector* operator->(); 00090 bool operator==(const ConnectorRef& target) const; 00091 operator bool() const; 00092 00093 friend class Connector; 00094 00095 private: 00096 Connector* pointer_; 00097 }; 00098 // ------------------------------------------------------------------------- 00099 inline ConnectorRef::ConnectorRef(const ConnectorRef& target) 00100 { 00101 if (this != &target) 00102 pointer_ = target.pointer_; 00103 } 00104 // ------------------------------------------------------------------------- 00105 inline ConnectorRef::ConnectorRef(Connector* target_ptr) 00106 { 00107 pointer_ = target_ptr; 00108 } 00109 // ------------------------------------------------------------------------- 00110 inline ConnectorRef& 00111 ConnectorRef::operator=(const ConnectorRef& target) 00112 { 00113 if (this != &target) 00114 pointer_ = target.pointer_; 00115 return *this; 00116 } 00117 // ------------------------------------------------------------------------- 00118 inline Connector* 00119 ConnectorRef::operator->() 00120 { 00121 return pointer_; 00122 } 00123 // ------------------------------------------------------------------------- 00124 inline bool 00125 ConnectorRef::operator==(const ConnectorRef& target) const 00126 { 00127 return (pointer_ == target.pointer_); 00128 } 00129 // ------------------------------------------------------------------------- 00130 inline 00131 ConnectorRef::operator bool() const 00132 { 00133 if (pointer_ != NULL) 00134 return true; 00135 00136 return false; 00137 } 00138 // ------------------------------------------------------------------------- 00139 #endif
1.7.6.1