signal9.h
Go to the documentation of this file.
1 /*********************************************************************
2 * Software License Agreement (BSD License)
3 *
4 * Copyright (c) 2010, Willow Garage, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
17 * * Neither the name of the Willow Garage nor the names of its
18 * contributors may be used to endorse or promote products derived
19 * from this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
33 *********************************************************************/
34 
35 #ifndef MESSAGE_FILTERS_SIGNAL9_H
36 #define MESSAGE_FILTERS_SIGNAL9_H
37 
38 #include <boost/noncopyable.hpp>
39 
40 #include "connection.h"
41 #include "null_types.h"
42 #include <ros/message_event.h>
43 #include <ros/parameter_adapter.h>
44 
45 #include <boost/bind.hpp>
46 #include <boost/thread/mutex.hpp>
47 
48 namespace message_filters
49 {
51 
52 template<typename M0, typename M1, typename M2, typename M3, typename M4, typename M5, typename M6, typename M7, typename M8>
53 class CallbackHelper9
54 {
55 public:
65 
66  virtual ~CallbackHelper9() {}
67 
68  virtual void call(bool nonconst_force_copy, const M0Event& e0, const M1Event& e1, const M2Event& e2, const M3Event& e3,
69  const M4Event& e4, const M5Event& e5, const M6Event& e6, const M7Event& e7, const M8Event& e8) = 0;
70 
72 };
73 
74 template<typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8>
75 class CallbackHelper9T :
76  public CallbackHelper9<typename ParameterAdapter<P0>::Message,
77  typename ParameterAdapter<P1>::Message,
78  typename ParameterAdapter<P2>::Message,
79  typename ParameterAdapter<P3>::Message,
80  typename ParameterAdapter<P4>::Message,
81  typename ParameterAdapter<P5>::Message,
82  typename ParameterAdapter<P6>::Message,
83  typename ParameterAdapter<P7>::Message,
84  typename ParameterAdapter<P8>::Message>
85 {
86 private:
87  typedef ParameterAdapter<P0> A0;
96  typedef typename A0::Event M0Event;
97  typedef typename A1::Event M1Event;
98  typedef typename A2::Event M2Event;
99  typedef typename A3::Event M3Event;
100  typedef typename A4::Event M4Event;
101  typedef typename A5::Event M5Event;
102  typedef typename A6::Event M6Event;
103  typedef typename A7::Event M7Event;
104  typedef typename A8::Event M8Event;
105 
106 public:
107  typedef boost::function<void(typename A0::Parameter, typename A1::Parameter, typename A2::Parameter,
108  typename A3::Parameter, typename A4::Parameter, typename A5::Parameter,
109  typename A6::Parameter, typename A7::Parameter, typename A8::Parameter)> Callback;
110 
111  CallbackHelper9T(const Callback& cb)
112  : callback_(cb)
113  {
114  }
115 
116  virtual void call(bool nonconst_force_copy, const M0Event& e0, const M1Event& e1, const M2Event& e2, const M3Event& e3,
117  const M4Event& e4, const M5Event& e5, const M6Event& e6, const M7Event& e7, const M8Event& e8)
118  {
119  M0Event my_e0(e0, nonconst_force_copy || e0.nonConstWillCopy());
120  M1Event my_e1(e1, nonconst_force_copy || e0.nonConstWillCopy());
121  M2Event my_e2(e2, nonconst_force_copy || e0.nonConstWillCopy());
122  M3Event my_e3(e3, nonconst_force_copy || e0.nonConstWillCopy());
123  M4Event my_e4(e4, nonconst_force_copy || e0.nonConstWillCopy());
124  M5Event my_e5(e5, nonconst_force_copy || e0.nonConstWillCopy());
125  M6Event my_e6(e6, nonconst_force_copy || e0.nonConstWillCopy());
126  M7Event my_e7(e7, nonconst_force_copy || e0.nonConstWillCopy());
127  M8Event my_e8(e8, nonconst_force_copy || e0.nonConstWillCopy());
137  }
138 
139 private:
141 };
142 
143 template<typename M0, typename M1, typename M2, typename M3, typename M4, typename M5, typename M6, typename M7, typename M8>
144 class Signal9
145 {
147  typedef std::vector<CallbackHelper9Ptr> V_CallbackHelper9;
148 
149 public:
169 
170  template<typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8>
171  Connection addCallback(const boost::function<void(P0, P1, P2, P3, P4, P5, P6, P7, P8)>& callback)
172  {
174 
175  boost::mutex::scoped_lock lock(mutex_);
176  callbacks_.push_back(CallbackHelper9Ptr(helper));
177  return Connection(boost::bind(&Signal9::removeCallback, this, callbacks_.back()));
178  }
179 
180  template<typename P0, typename P1>
181  Connection addCallback(void(*callback)(P0, P1))
182  {
183  return addCallback(boost::function<void(P0, P1, NullP, NullP, NullP, NullP, NullP, NullP, NullP)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2)));
184  }
185 
186  template<typename P0, typename P1, typename P2>
187  Connection addCallback(void(*callback)(P0, P1, P2))
188  {
189  return addCallback(boost::function<void(P0, P1, P2, NullP, NullP, NullP, NullP, NullP, NullP)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)));
190  }
191 
192  template<typename P0, typename P1, typename P2, typename P3>
193  Connection addCallback(void(*callback)(P0, P1, P2, P3))
194  {
195  return addCallback(boost::function<void(P0, P1, P2, P3, NullP, NullP, NullP, NullP, NullP)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4)));
196  }
197 
198  template<typename P0, typename P1, typename P2, typename P3, typename P4>
199  Connection addCallback(void(*callback)(P0, P1, P2, P3, P4))
200  {
201  return addCallback(boost::function<void(P0, P1, P2, P3, P4, NullP, NullP, NullP, NullP)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5)));
202  }
203 
204  template<typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
205  Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5))
206  {
207  return addCallback(boost::function<void(P0, P1, P2, P3, P4, P5, NullP, NullP, NullP)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6)));
208  }
209 
210  template<typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
211  Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5, P6))
212  {
213  return addCallback(boost::function<void(P0, P1, P2, P3, P4, P5, P6, NullP, NullP)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7)));
214  }
215 
216  template<typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
217  Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5, P6, P7))
218  {
219  return addCallback(boost::function<void(P0, P1, P2, P3, P4, P5, P6, P7, NullP)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8)));
220  }
221 
222  template<typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8>
223  Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5, P6, P7, P8))
224  {
225  return addCallback(boost::function<void(P0, P1, P2, P3, P4, P5, P6, P7, P8)>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8, boost::placeholders::_9)));
226  }
227 
228  template<typename T, typename P0, typename P1>
229  Connection addCallback(void(T::*callback)(P0, P1), T* t)
230  {
231  return addCallback(boost::function<void(P0, P1, NullP, NullP, NullP, NullP, NullP, NullP, NullP)>(boost::bind(callback, t, boost::placeholders::_1, boost::placeholders::_2)));
232  }
233 
234  template<typename T, typename P0, typename P1, typename P2>
235  Connection addCallback(void(T::*callback)(P0, P1, P2), T* t)
236  {
237  return addCallback(boost::function<void(P0, P1, P2, NullP, NullP, NullP, NullP, NullP, NullP)>(boost::bind(callback, t, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3)));
238  }
239 
240  template<typename T, typename P0, typename P1, typename P2, typename P3>
241  Connection addCallback(void(T::*callback)(P0, P1, P2, P3), T* t)
242  {
243  return addCallback(boost::function<void(P0, P1, P2, P3, NullP, NullP, NullP, NullP, NullP)>(boost::bind(callback, t, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4)));
244  }
245 
246  template<typename T, typename P0, typename P1, typename P2, typename P3, typename P4>
247  Connection addCallback(void(T::*callback)(P0, P1, P2, P3, P4), T* t)
248  {
249  return addCallback(boost::function<void(P0, P1, P2, P3, P4, NullP, NullP, NullP, NullP)>(boost::bind(callback, t, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5)));
250  }
251 
252  template<typename T, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
253  Connection addCallback(void(T::*callback)(P0, P1, P2, P3, P4, P5), T* t)
254  {
255  return addCallback(boost::function<void(P0, P1, P2, P3, P4, P5, NullP, NullP, NullP)>(boost::bind(callback, t, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6)));
256  }
257 
258  template<typename T, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
259  Connection addCallback(void(T::*callback)(P0, P1, P2, P3, P4, P5, P6), T* t)
260  {
261  return addCallback(boost::function<void(P0, P1, P2, P3, P4, P5, P6, NullP, NullP)>(boost::bind(callback, t, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7)));
262  }
263 
264  template<typename T, typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
265  Connection addCallback(void(T::*callback)(P0, P1, P2, P3, P4, P5, P6, P7), T* t)
266  {
267  return addCallback(boost::function<void(P0, P1, P2, P3, P4, P5, P6, P7, NullP)>(boost::bind(callback, t, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8)));
268  }
269 
270  template<typename C>
271  Connection addCallback( C& callback)
272  {
273  return addCallback<const M0ConstPtr&,
274  const M1ConstPtr&,
275  const M2ConstPtr&,
276  const M3ConstPtr&,
277  const M4ConstPtr&,
278  const M5ConstPtr&,
279  const M6ConstPtr&,
280  const M7ConstPtr&,
281  const M8ConstPtr&>(boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6, boost::placeholders::_7, boost::placeholders::_8, boost::placeholders::_9));
282  }
283 
284  void removeCallback(const CallbackHelper9Ptr& helper)
285  {
286  boost::mutex::scoped_lock lock(mutex_);
287  typename V_CallbackHelper9::iterator it = std::find(callbacks_.begin(), callbacks_.end(), helper);
288  if (it != callbacks_.end())
289  {
290  callbacks_.erase(it);
291  }
292  }
293 
294  void call(const M0Event& e0, const M1Event& e1, const M2Event& e2, const M3Event& e3, const M4Event& e4,
295  const M5Event& e5, const M6Event& e6, const M7Event& e7, const M8Event& e8)
296  {
297  boost::mutex::scoped_lock lock(mutex_);
298  bool nonconst_force_copy = callbacks_.size() > 1;
299  typename V_CallbackHelper9::iterator it = callbacks_.begin();
300  typename V_CallbackHelper9::iterator end = callbacks_.end();
301  for (; it != end; ++it)
302  {
303  const CallbackHelper9Ptr& helper = *it;
304  helper->call(nonconst_force_copy, e0, e1, e2, e3, e4, e5, e6, e7, e8);
305  }
306  }
307 
308 private:
309  boost::mutex mutex_;
311 };
312 
313 } // message_filters
314 
315 #endif // MESSAGE_FILTERS_SIGNAL9_H
316 
317 
message_filters::CallbackHelper9T::CallbackHelper9T
CallbackHelper9T(const Callback &cb)
Definition: signal9.h:143
message_filters::CallbackHelper9::M4Event
ros::MessageEvent< M4 const > M4Event
Definition: signal9.h:92
message_filters::Signal9::addCallback
Connection addCallback(const boost::function< void(P0, P1, P2, P3, P4, P5, P6, P7, P8)> &callback)
Definition: signal9.h:203
message_filters::Signal9::removeCallback
void removeCallback(const CallbackHelper9Ptr &helper)
Definition: signal9.h:316
message_filters::Signal9::M1ConstPtr
boost::shared_ptr< M1 const > M1ConstPtr
Definition: signal9.h:192
message_filters::CallbackHelper9T::A0
ParameterAdapter< P0 > A0
Definition: signal9.h:119
parameter_adapter.h
message_filters::Connection
Encapsulates a connection from one filter to another (or to a user-specified callback)
Definition: connection.h:80
message_filters::CallbackHelper9::M6Event
ros::MessageEvent< M6 const > M6Event
Definition: signal9.h:94
boost::shared_ptr
message_filters::Signal9::addCallback
Connection addCallback(void(T::*callback)(P0, P1, P2), T *t)
Definition: signal9.h:267
message_filters::CallbackHelper9T::M6Event
A6::Event M6Event
Definition: signal9.h:134
message_filters::Signal9::callbacks_
V_CallbackHelper9 callbacks_
Definition: signal9.h:342
message_filters::CallbackHelper9::Ptr
boost::shared_ptr< CallbackHelper9 > Ptr
Definition: signal9.h:103
message_filters::CallbackHelper9T::M2Event
A2::Event M2Event
Definition: signal9.h:130
message_filters::CallbackHelper9::call
virtual void call(bool nonconst_force_copy, const M0Event &e0, const M1Event &e1, const M2Event &e2, const M3Event &e3, const M4Event &e4, const M5Event &e5, const M6Event &e6, const M7Event &e7, const M8Event &e8)=0
message_filters::CallbackHelper9::M8Event
ros::MessageEvent< M8 const > M8Event
Definition: signal9.h:96
message_filters::Signal9::M7Event
ros::MessageEvent< M7 const > M7Event
Definition: signal9.h:189
message_filters::CallbackHelper9T::M0Event
A0::Event M0Event
Definition: signal9.h:128
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5))
Definition: signal9.h:237
ros::ParameterAdapter
message_filters::Signal9::V_CallbackHelper9
std::vector< CallbackHelper9Ptr > V_CallbackHelper9
Definition: signal9.h:179
message_filters::Signal9::M0Event
ros::MessageEvent< M0 const > M0Event
Definition: signal9.h:182
message_filters::Signal9::M4ConstPtr
boost::shared_ptr< M4 const > M4ConstPtr
Definition: signal9.h:195
message_filters::Signal9::M6ConstPtr
boost::shared_ptr< M6 const > M6ConstPtr
Definition: signal9.h:197
message_filters::Signal9::M8ConstPtr
boost::shared_ptr< M8 const > M8ConstPtr
Definition: signal9.h:199
message_filters::CallbackHelper9T::M3Event
A3::Event M3Event
Definition: signal9.h:131
message_filters::Signal9::CallbackHelper9Ptr
boost::shared_ptr< CallbackHelper9< M0, M1, M2, M3, M4, M5, M6, M7, M8 > > CallbackHelper9Ptr
Definition: signal9.h:178
ros::ParameterAdapter::Parameter
M Parameter
message_filters::Signal9::M6Event
ros::MessageEvent< M6 const > M6Event
Definition: signal9.h:188
message_filters::CallbackHelper9T::Callback
boost::function< void(typename A0::Parameter, typename A1::Parameter, typename A2::Parameter, typename A3::Parameter, typename A4::Parameter, typename A5::Parameter, typename A6::Parameter, typename A7::Parameter, typename A8::Parameter)> Callback
Definition: signal9.h:141
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5, P6, P7, P8))
Definition: signal9.h:255
message_filters::Signal9::M3ConstPtr
boost::shared_ptr< M3 const > M3ConstPtr
Definition: signal9.h:194
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1, P2, P3, P4))
Definition: signal9.h:231
message_filters::CallbackHelper9T::A4
ParameterAdapter< P4 > A4
Definition: signal9.h:123
message_filters::Signal9::M8Event
ros::MessageEvent< M8 const > M8Event
Definition: signal9.h:190
message_filters::Signal9::M4Event
ros::MessageEvent< M4 const > M4Event
Definition: signal9.h:186
message_filters::Signal9
Definition: signal9.h:176
message_filters::CallbackHelper9T
Definition: signal9.h:107
message_filters::CallbackHelper9::M5Event
ros::MessageEvent< M5 const > M5Event
Definition: signal9.h:93
message_filters::CallbackHelper9T::call
virtual void call(bool nonconst_force_copy, const M0Event &e0, const M1Event &e1, const M2Event &e2, const M3Event &e3, const M4Event &e4, const M5Event &e5, const M6Event &e6, const M7Event &e7, const M8Event &e8)
Definition: signal9.h:148
ros::ParameterAdapter::getParameter
static Parameter getParameter(const Event &event)
message_filters::CallbackHelper9::M0Event
ros::MessageEvent< M0 const > M0Event
Definition: signal9.h:88
message_filters::CallbackHelper9T::M4Event
A4::Event M4Event
Definition: signal9.h:132
message_filters::Signal9::M5Event
ros::MessageEvent< M5 const > M5Event
Definition: signal9.h:187
message_filters::CallbackHelper9::M3Event
ros::MessageEvent< M3 const > M3Event
Definition: signal9.h:91
message_filters::CallbackHelper9T::A6
ParameterAdapter< P6 > A6
Definition: signal9.h:125
message_filters::Signal9::M1Event
ros::MessageEvent< M1 const > M1Event
Definition: signal9.h:183
message_filters::CallbackHelper9T::A1
ParameterAdapter< P1 > A1
Definition: signal9.h:120
message_filters::CallbackHelper9T::A2
ParameterAdapter< P2 > A2
Definition: signal9.h:121
message_filters::Signal9::call
void call(const M0Event &e0, const M1Event &e1, const M2Event &e2, const M3Event &e3, const M4Event &e4, const M5Event &e5, const M6Event &e6, const M7Event &e7, const M8Event &e8)
Definition: signal9.h:326
message_filters::CallbackHelper9T::callback_
Callback callback_
Definition: signal9.h:172
message_filters::Signal9::M7ConstPtr
boost::shared_ptr< M7 const > M7ConstPtr
Definition: signal9.h:198
connection.h
message_filters::Signal9::NullP
const typedef boost::shared_ptr< NullType const > & NullP
Definition: signal9.h:200
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5, P6, P7))
Definition: signal9.h:249
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1))
Definition: signal9.h:213
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1, P2))
Definition: signal9.h:219
null_types.h
message_filters::CallbackHelper9::~CallbackHelper9
virtual ~CallbackHelper9()
Definition: signal9.h:98
message_filters::CallbackHelper9::M7Event
ros::MessageEvent< M7 const > M7Event
Definition: signal9.h:95
ros::ParameterAdapter::Event
ros::MessageEvent< Message const > Event
message_filters::CallbackHelper9T::A7
ParameterAdapter< P7 > A7
Definition: signal9.h:126
message_filters::Signal9::M3Event
ros::MessageEvent< M3 const > M3Event
Definition: signal9.h:185
message_filters::CallbackHelper9T::M1Event
A1::Event M1Event
Definition: signal9.h:129
message_filters::Signal9::M2ConstPtr
boost::shared_ptr< M2 const > M2ConstPtr
Definition: signal9.h:193
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1, P2, P3))
Definition: signal9.h:225
message_filters
Definition: cache.h:47
message_filters::CallbackHelper9::M1Event
ros::MessageEvent< M1 const > M1Event
Definition: signal9.h:89
message_filters::Signal9::mutex_
boost::mutex mutex_
Definition: signal9.h:341
message_filters::CallbackHelper9T::A8
ParameterAdapter< P8 > A8
Definition: signal9.h:127
message_filters::CallbackHelper9T::M5Event
A5::Event M5Event
Definition: signal9.h:133
message_filters::CallbackHelper9T::A5
ParameterAdapter< P5 > A5
Definition: signal9.h:124
message_filters::CallbackHelper9T::M7Event
A7::Event M7Event
Definition: signal9.h:135
message_filters::Signal9::addCallback
Connection addCallback(void(*callback)(P0, P1, P2, P3, P4, P5, P6))
Definition: signal9.h:243
message_filters::Signal9::M2Event
ros::MessageEvent< M2 const > M2Event
Definition: signal9.h:184
message_filters::CallbackHelper9::M2Event
ros::MessageEvent< M2 const > M2Event
Definition: signal9.h:90
message_filters::CallbackHelper9T::M8Event
A8::Event M8Event
Definition: signal9.h:136
message_event.h
ros::MessageEvent
message_filters::CallbackHelper9T::A3
ParameterAdapter< P3 > A3
Definition: signal9.h:122
message_filters::Signal9::M0ConstPtr
boost::shared_ptr< M0 const > M0ConstPtr
Definition: signal9.h:191
message_filters::Signal9::addCallback
Connection addCallback(void(T::*callback)(P0, P1), T *t)
Definition: signal9.h:261
message_filters::Signal9::M5ConstPtr
boost::shared_ptr< M5 const > M5ConstPtr
Definition: signal9.h:196


message_filters
Author(s): Josh Faust, Vijay Pradeep, Dirk Thomas , Jacob Perron
autogenerated on Thu Nov 23 2023 04:01:54