Choreonoid  1.5
ConnectionSet.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_CONNECTION_SET_H
6 #define CNOID_BASE_CONNECTION_SET_H
7 
8 //#define CNOID_USE_BOOST_SIGNALS
9 
10 #include "Signal.h"
11 #include <vector>
12 #include <boost/variant.hpp>
13 
14 #ifdef CNOID_USE_BOOST_SIGNALS
15 #include <boost/signals/connection.hpp>
16 #endif
17 
18 #include "exportdecl.h"
19 
20 namespace cnoid {
21 
23 {
24 public:
25  ConnectionSet();
26  ConnectionSet(const ConnectionSet& org);
27  ConnectionSet& operator=(const ConnectionSet& org);
28  ~ConnectionSet();
29 
30  bool empty() const {
31  return connections.empty();
32  }
33 
34  size_t numConnections() const { return connections.size(); }
35 
36 #ifdef CNOID_USE_BOOST_SIGNALS
37  void add(const boost::signals::connection& connection);
38 #endif
39  void add(const Connection& connection);
40  void add(const ConnectionSet& connections);
41  void block();
42  void block(int index);
43  void unblock();
44  void unblock(int index);
45  void disconnect();
46 
47 private:
48 #ifdef CNOID_USE_BOOST_SIGNALS
49  typedef boost::variant<Connection, boost::signals::connection> GeneralConnection;
50  std::vector<GeneralConnection> connections;
51 #else
52  std::vector<Connection> connections;
53 #endif
54 };
55 
56 
58 {
59 public:
62  bool empty() const { return ConnectionSet::empty(); }
63  size_t numConnections() const { return ConnectionSet::numConnections(); }
64  void add(const Connection& connection) { ConnectionSet::add(connection); }
66  void block(int index) { ConnectionSet::block(index); }
68  void unblock(int index) { ConnectionSet::unblock(index); }
70 
71 private:
73  ScopedConnectionSet& operator=(const ScopedConnection& rhs) { return *this; }
74 };
75 
76 }
77 
78 #endif
79 
void disconnect()
Definition: ConnectionSet.cpp:44
~ScopedConnectionSet()
Definition: ConnectionSet.h:61
ScopedConnectionSet()
Definition: ConnectionSet.h:60
Definition: ConnectionSet.h:22
size_t numConnections() const
Definition: ConnectionSet.h:63
void block()
Definition: ConnectionSet.cpp:85
Definition: Signal.h:156
void add(const Connection &connection)
Definition: ConnectionSet.cpp:63
bool empty() const
Definition: ConnectionSet.h:30
size_t numConnections() const
Definition: ConnectionSet.h:34
void disconnect()
Definition: ConnectionSet.h:69
void unblock()
Definition: ConnectionSet.h:67
void unblock()
Definition: ConnectionSet.cpp:103
Definition: ConnectionSet.h:57
bool empty() const
Definition: ConnectionSet.h:62
void block(int index)
Definition: ConnectionSet.h:66
void add(const Connection &connection)
Definition: ConnectionSet.h:64
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: Signal.h:107
void block()
Definition: ConnectionSet.h:65
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
void unblock(int index)
Definition: ConnectionSet.h:68