CheckedSignal.h

00001 #ifndef _CHECKEDSIGNAL_H
00002 #define _CHECKEDSIGNAL_H
00003 // -------------------------------------------------------------------------
00004 #include <UniSetTypes.h>
00005 #include <sigc++/sigc++.h>
00006 #include <deque>
00007 // -------------------------------------------------------------------------
00008 class CheckConnection;
00009 
00010 typedef std::pair< UniSetTypes::ObjectId,sigc::signal< void,UniSetTypes::ObjectId >* > CheckBackEntry;
00011 typedef std::deque< CheckBackEntry > CheckBackContainer;
00018 class CheckedSignal
00019 {
00020 friend class CheckConnection;
00021 public:
00022     CheckConnection connect( const sigc::slot< void,UniSetTypes::ObjectId >&, UniSetTypes::ObjectId sensorId );
00023     void emit();
00024     ~CheckedSignal();
00025 private:
00026     CheckBackContainer cb;
00027 };
00028 
00029 class CheckConnection
00030 {
00031 public:
00032     CheckConnection(CheckedSignal* sig, sigc::connection& conn, UniSetTypes::ObjectId id)
00033         :sid (id), signal(sig), connection(conn) {}
00034 //  CheckConnection(const CheckConnection& chconn);
00035     CheckConnection():signal(NULL) {}
00036     ~CheckConnection() {}
00037     void disconnect();
00038 
00039 private:
00040     UniSetTypes::ObjectId sid;
00041     CheckedSignal* signal;
00042     sigc::connection connection;
00043 };
00044 #endif

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