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(* 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). 
void DisconnectWithoutContext(std::string path, const CallbackBase &cb)
TracedCallback()
Constructor. 
std::list< Callback< void, T1, T2, T3, T4, T5, T6, T7, T8 > > CallbackList
Container type for holding the chain of Callbacks.