21 #ifndef TRACED_CALLBACK_H
22 #define TRACED_CALLBACK_H
58 template<
typename T1 = empty,
typename T2 = empty,
59 typename T3 = empty,
typename T4 = empty,
60 typename T5 = empty,
typename T6 = empty,
61 typename T7 = empty,
typename T8 = empty>
141 void operator() (T1 a1, T2 a2, T3 a3, T4 a4)
const;
155 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
const;
171 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
const;
189 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7)
const;
209 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8)
const;
237 typedef std::list<Callback<void,T1,T2,T3,T4,T5,T6,T7,T8> >
CallbackList;
251 template<
typename T1,
typename T2,
252 typename T3,
typename T4,
253 typename T5,
typename T6,
254 typename T7,
typename T8>
259 template<
typename T1,
typename T2,
260 typename T3,
typename T4,
261 typename T5,
typename T6,
262 typename T7,
typename T8>
268 m_callbackList.push_back (cb);
270 template<
typename T1,
typename T2,
271 typename T3,
typename T4,
272 typename T5,
typename T6,
273 typename T7,
typename T8>
280 m_callbackList.push_back (realCb);
282 template<
typename T1,
typename T2,
283 typename T3,
typename T4,
284 typename T5,
typename T6,
285 typename T7,
typename T8>
289 for (
typename CallbackList::iterator i = m_callbackList.begin ();
290 i != m_callbackList.end (); )
292 if ((*i).IsEqual (callback))
294 i = m_callbackList.erase (i);
302 template<
typename T1,
typename T2,
303 typename T3,
typename T4,
304 typename T5,
typename T6,
305 typename T7,
typename T8>
314 template<
typename T1,
typename T2,
315 typename T3,
typename T4,
316 typename T5,
typename T6,
317 typename T7,
typename T8>
321 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
322 i != m_callbackList.end (); i++)
327 template<
typename T1,
typename T2,
328 typename T3,
typename T4,
329 typename T5,
typename T6,
330 typename T7,
typename T8>
334 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
335 i != m_callbackList.end (); i++)
340 template<
typename T1,
typename T2,
341 typename T3,
typename T4,
342 typename T5,
typename T6,
343 typename T7,
typename T8>
347 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
348 i != m_callbackList.end (); i++)
353 template<
typename T1,
typename T2,
354 typename T3,
typename T4,
355 typename T5,
typename T6,
356 typename T7,
typename T8>
360 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
361 i != m_callbackList.end (); i++)
366 template<
typename T1,
typename T2,
367 typename T3,
typename T4,
368 typename T5,
typename T6,
369 typename T7,
typename T8>
371 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4)
const
373 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
374 i != m_callbackList.end (); i++)
376 (*i)(a1, a2, a3, a4);
379 template<
typename T1,
typename T2,
380 typename T3,
typename T4,
381 typename T5,
typename T6,
382 typename T7,
typename T8>
384 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
const
386 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
387 i != m_callbackList.end (); i++)
389 (*i)(a1, a2, a3, a4, a5);
392 template<
typename T1,
typename T2,
393 typename T3,
typename T4,
394 typename T5,
typename T6,
395 typename T7,
typename T8>
397 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
const
399 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
400 i != m_callbackList.end (); i++)
402 (*i)(a1, a2, a3, a4, a5, a6);
405 template<
typename T1,
typename T2,
406 typename T3,
typename T4,
407 typename T5,
typename T6,
408 typename T7,
typename T8>
410 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7)
const
412 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
413 i != m_callbackList.end (); i++)
415 (*i)(a1, a2, a3, a4, a5, a6, a7);
418 template<
typename T1,
typename T2,
419 typename T3,
typename T4,
420 typename T5,
typename T6,
421 typename T7,
typename T8>
423 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8)
const
425 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
426 i != m_callbackList.end (); i++)
428 (*i)(a1, a2, a3, a4, a5, a6, a7, a8);
Forward calls to a chain of Callback.
void operator()(void) const
Functor which invokes the chain of Callbacks.
void Assign(const CallbackBase &other)
Adopt the other's implementation, if type compatible.
Callback< R, T2, T3, T4, T5, T6, T7, T8, T9 > Bind(T a)
Bind the first arguments.
Base class for Callback class.
void DisconnectWithoutContext(std::string path, const CallbackBase &cb)
Declaration of the various callback functions.
void(* Uint32Callback)(const uint32_t value)
TracedCallback signature for POD.
void DisconnectWithoutContext(const CallbackBase &callback)
Remove from the chain a Callback which was connected without a context.
void Disconnect(const CallbackBase &callback, std::string path)
Remove from the chain a Callback which was connected with a context.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void Connect(const CallbackBase &callback, std::string path)
Append a Callback to the chain with a context.
CallbackList m_callbackList
The chain of Callbacks.
void ConnectWithoutContext(const CallbackBase &callback)
Append a Callback to the chain (without a context).
TracedCallback()
Constructor.
std::list< Callback< void, T1, T2, T3, T4, T5, T6, T7, T8 > > CallbackList
Container type for holding the chain of Callbacks.