ConnectorListener.cpp
Go to the documentation of this file.
1 // -*- C++ -*-
20 #include <rtm/ConnectorListener.h>
21 
22 namespace RTC
23 {
32 
41 
50  {
51  }
52 
53 
55  {
56  Guard guard(m_mutex);
57  for (int i(0), len(m_listeners.size()); i < len; ++i)
58  {
59  if (m_listeners[i].second)
60  {
61  delete m_listeners[i].first;
62  }
63  }
64  }
65 
66 
68  addListener(ConnectorDataListener* listener, bool autoclean)
69  {
70  Guard guard(m_mutex);
71  m_listeners.push_back(Entry(listener, autoclean));
72  }
73 
74 
77  {
78  Guard guard(m_mutex);
79  std::vector<Entry>::iterator it(m_listeners.begin());
80  for (; it != m_listeners.end(); ++it)
81  {
82  if ((*it).first == listener)
83  {
84  if ((*it).second)
85  {
86  delete (*it).first;
87  }
88  m_listeners.erase(it);
89  return;
90  }
91  }
92 
93  }
94 
95 
97  const cdrMemoryStream& cdrdata)
98  {
99  Guard guard(m_mutex);
100  for (int i(0), len(m_listeners.size()); i < len; ++i)
101  {
102  m_listeners[i].first->operator()(info, cdrdata);
103  }
104  }
105 
106 
115  {
116  }
117 
118 
120  {
121  Guard guard(m_mutex);
122  for (int i(0), len(m_listeners.size()); i < len; ++i)
123  {
124  if (m_listeners[i].second)
125  {
126  delete m_listeners[i].first;
127  }
128  }
129  }
130 
131 
133  bool autoclean)
134  {
135  Guard guard(m_mutex);
136  m_listeners.push_back(Entry(listener, autoclean));
137  }
138 
139 
141  {
142  Guard guard(m_mutex);
143  std::vector<Entry>::iterator it(m_listeners.begin());
144 
145  for (; it != m_listeners.end(); ++it)
146  {
147  if ((*it).first == listener)
148  {
149  if ((*it).second)
150  {
151  delete (*it).first;
152  }
153  m_listeners.erase(it);
154  return;
155  }
156  }
157 
158  }
159 
160 
162  {
163  Guard guard(m_mutex);
164  for (int i(0), len(m_listeners.size()); i < len; ++i)
165  {
166  m_listeners[i].first->operator()(info);
167  }
168  }
169 };
170 
171 
void removeListener(ConnectorListener *listener)
Remove the listener.
RT-Component.
ConnectorDataListener class.
void addListener(ConnectorDataListener *listener, bool autoclean)
Add the listener.
void removeListener(ConnectorDataListener *listener)
Remove the listener.
virtual ~ConnectorDataListener()
Destructor.
virtual ~ConnectorListenerHolder()
Destructor.
virtual ~ConnectorListener()
Destructor.
void addListener(ConnectorListener *listener, bool autoclean)
Add the listener.
std::pair< ConnectorListener *, bool > Entry
std::pair< ConnectorDataListener *, bool > Entry
void notify(const ConnectorInfo &info, const cdrMemoryStream &cdrdata)
Notify listeners.
virtual ~ConnectorDataListenerHolder()
Destructor.
void notify(const ConnectorInfo &info)
Notify listeners.
connector listener class


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Mon Jun 10 2019 14:07:50