Connector.h

00001 #ifndef _CONNECTOR_H
00002 #define _CONNECTOR_H
00003 // -------------------------------------------------------------------------
00004 #include <UniSetTypes.h>
00005 #include <UniversalInterface.h>
00006 #include <MessageType.h>
00007 #include <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

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