21 #ifndef TRACED_CALLBACK_H
22 #define TRACED_CALLBACK_H
39 template<
typename T1 = empty,
typename T2 = empty,
40 typename T3 = empty,
typename T4 = empty,
41 typename T5 = empty,
typename T6 = empty,
42 typename T7 = empty,
typename T8 = empty>
85 void operator() (T1 a1, T2 a2, T3 a3, T4 a4)
const;
86 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
const;
87 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
const;
88 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7)
const;
89 void operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8)
const;
92 typedef std::list<Callback<void,T1,T2,T3,T4,T5,T6,T7,T8> >
CallbackList;
102 template<
typename T1,
typename T2,
103 typename T3,
typename T4,
104 typename T5,
typename T6,
105 typename T7,
typename T8>
110 template<
typename T1,
typename T2,
111 typename T3,
typename T4,
112 typename T5,
typename T6,
113 typename T7,
typename T8>
119 m_callbackList.push_back (cb);
121 template<
typename T1,
typename T2,
122 typename T3,
typename T4,
123 typename T5,
typename T6,
124 typename T7,
typename T8>
131 m_callbackList.push_back (realCb);
133 template<
typename T1,
typename T2,
134 typename T3,
typename T4,
135 typename T5,
typename T6,
136 typename T7,
typename T8>
140 for (
typename CallbackList::iterator i = m_callbackList.begin ();
141 i != m_callbackList.end (); )
143 if ((*i).IsEqual (callback))
145 i = m_callbackList.erase (i);
153 template<
typename T1,
typename T2,
154 typename T3,
typename T4,
155 typename T5,
typename T6,
156 typename T7,
typename T8>
165 template<
typename T1,
typename T2,
166 typename T3,
typename T4,
167 typename T5,
typename T6,
168 typename T7,
typename T8>
172 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
173 i != m_callbackList.end (); i++)
178 template<
typename T1,
typename T2,
179 typename T3,
typename T4,
180 typename T5,
typename T6,
181 typename T7,
typename T8>
185 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
186 i != m_callbackList.end (); i++)
191 template<
typename T1,
typename T2,
192 typename T3,
typename T4,
193 typename T5,
typename T6,
194 typename T7,
typename T8>
198 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
199 i != m_callbackList.end (); i++)
204 template<
typename T1,
typename T2,
205 typename T3,
typename T4,
206 typename T5,
typename T6,
207 typename T7,
typename T8>
211 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
212 i != m_callbackList.end (); i++)
217 template<
typename T1,
typename T2,
218 typename T3,
typename T4,
219 typename T5,
typename T6,
220 typename T7,
typename T8>
222 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4)
const
224 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
225 i != m_callbackList.end (); i++)
227 (*i)(a1, a2, a3, a4);
230 template<
typename T1,
typename T2,
231 typename T3,
typename T4,
232 typename T5,
typename T6,
233 typename T7,
typename T8>
235 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
const
237 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
238 i != m_callbackList.end (); i++)
240 (*i)(a1, a2, a3, a4, a5);
243 template<
typename T1,
typename T2,
244 typename T3,
typename T4,
245 typename T5,
typename T6,
246 typename T7,
typename T8>
248 TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
const
250 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
251 i != m_callbackList.end (); i++)
253 (*i)(a1, a2, a3, a4, a5, a6);
256 template<
typename T1,
typename T2,
257 typename T3,
typename T4,
258 typename T5,
typename T6,
259 typename T7,
typename T8>
261 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
263 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
264 i != m_callbackList.end (); i++)
266 (*i)(a1, a2, a3, a4, a5, a6, a7);
269 template<
typename T1,
typename T2,
270 typename T3,
typename T4,
271 typename T5,
typename T6,
272 typename T7,
typename T8>
274 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
276 for (
typename CallbackList::const_iterator i = m_callbackList.begin ();
277 i != m_callbackList.end (); i++)
279 (*i)(a1, a2, a3, a4, a5, a6, a7, a8);
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
void operator()(void) const
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(const CallbackBase &callback)
void Disconnect(const CallbackBase &callback, std::string path)
void Connect(const CallbackBase &callback, std::string path)
CallbackList m_callbackList
void ConnectWithoutContext(const CallbackBase &callback)
void DisconnectWithoutContext(std::string path, const CallbackBase &cb)
std::list< Callback< void, T1, T2, T3, T4, T5, T6, T7, T8 > > CallbackList