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