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>
 
  267   if (!cb.
Assign (callback))
 
  269   m_callbackList.push_back (cb);
 
  271 template<
typename T1, 
typename T2,
 
  272          typename T3, 
typename T4,
 
  273          typename T5, 
typename T6,
 
  274          typename T7, 
typename T8>
 
  279   if (!cb.
Assign (callback))
 
  282   m_callbackList.push_back (realCb);
 
  284 template<
typename T1, 
typename T2, 
 
  285          typename T3, 
typename T4,
 
  286          typename T5, 
typename T6,
 
  287          typename T7, 
typename T8>
 
  291   for (
typename CallbackList::iterator i = m_callbackList.begin ();
 
  292        i != m_callbackList.end (); )
 
  294       if ((*i).IsEqual (callback))
 
  296           i = m_callbackList.erase (i);
 
  304 template<
typename T1, 
typename T2, 
 
  305          typename T3, 
typename T4,
 
  306          typename T5, 
typename T6,
 
  307          typename T7, 
typename T8>
 
  312   if (!cb.
Assign (callback))
 
  317 template<
typename T1, 
typename T2, 
 
  318          typename T3, 
typename T4,
 
  319          typename T5, 
typename T6,
 
  320          typename T7, 
typename T8>
 
  324   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  325        i != m_callbackList.end (); i++)
 
  330 template<
typename T1, 
typename T2, 
 
  331          typename T3, 
typename T4,
 
  332          typename T5, 
typename T6,
 
  333          typename T7, 
typename T8>
 
  337   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  338        i != m_callbackList.end (); i++)
 
  343 template<
typename T1, 
typename T2, 
 
  344          typename T3, 
typename T4,
 
  345          typename T5, 
typename T6,
 
  346          typename T7, 
typename T8>
 
  350   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  351        i != m_callbackList.end (); i++)
 
  356 template<
typename T1, 
typename T2, 
 
  357          typename T3, 
typename T4,
 
  358          typename T5, 
typename T6,
 
  359          typename T7, 
typename T8>
 
  363   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  364        i != m_callbackList.end (); i++)
 
  369 template<
typename T1, 
typename T2, 
 
  370          typename T3, 
typename T4,
 
  371          typename T5, 
typename T6,
 
  372          typename T7, 
typename T8>
 
  374 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4)
 const 
  376   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  377        i != m_callbackList.end (); i++)
 
  379       (*i)(a1, a2, a3, a4);
 
  382 template<
typename T1, 
typename T2, 
 
  383          typename T3, 
typename T4,
 
  384          typename T5, 
typename T6,
 
  385          typename T7, 
typename T8>
 
  387 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
 const 
  389   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  390        i != m_callbackList.end (); i++)
 
  392       (*i)(a1, a2, a3, a4, a5);
 
  395 template<
typename T1, 
typename T2, 
 
  396          typename T3, 
typename T4,
 
  397          typename T5, 
typename T6,
 
  398          typename T7, 
typename T8>
 
  400 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
 const 
  402   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  403        i != m_callbackList.end (); i++)
 
  405       (*i)(a1, a2, a3, a4, a5, a6);
 
  408 template<
typename T1, 
typename T2, 
 
  409          typename T3, 
typename T4,
 
  410          typename T5, 
typename T6,
 
  411          typename T7, 
typename T8>
 
  413 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 
  415   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  416        i != m_callbackList.end (); i++)
 
  418       (*i)(a1, a2, a3, a4, a5, a6, a7);
 
  421 template<
typename T1, 
typename T2, 
 
  422          typename T3, 
typename T4,
 
  423          typename T5, 
typename T6,
 
  424          typename T7, 
typename T8>
 
  426 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 
  428   for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
 
  429        i != m_callbackList.end (); i++)
 
  431       (*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. 
 
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)
 
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate. 
 
bool Assign(const CallbackBase &other)
Adopt the other's implementation, if type compatible. 
 
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. 
 
#define NS_FATAL_ERROR_NO_MSG()
Report a fatal error and terminate. 
 
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.