|
|
| 135 |
* expiration time of the next event to be processed is greater than |
135 |
* expiration time of the next event to be processed is greater than |
| 136 |
* or equal to the stop time. The stop time is relative to the |
136 |
* or equal to the stop time. The stop time is relative to the |
| 137 |
* current simulation time. |
137 |
* current simulation time. |
| 138 |
* @param time the stop time, relative to the current time. |
138 |
* \param time the stop time, relative to the current time. |
| 139 |
*/ |
139 |
*/ |
| 140 |
static void Stop (Time const &time); |
140 |
static void Stop (Time const &time); |
| 141 |
|
141 |
|
|
|
| 148 |
* When the event expires (when it becomes due to be run), the |
148 |
* When the event expires (when it becomes due to be run), the |
| 149 |
* input method will be invoked on the input object. |
149 |
* input method will be invoked on the input object. |
| 150 |
* |
150 |
* |
| 151 |
* @param time the relative expiration time of the event. |
151 |
* \param time the relative expiration time of the event. |
| 152 |
* @param mem_ptr member method pointer to invoke |
152 |
* \param mem_ptr member method pointer to invoke |
| 153 |
* @param obj the object on which to invoke the member method |
153 |
* \param obj the object on which to invoke the member method |
| 154 |
* @returns an id for the scheduled event. |
154 |
* \returns an id for the scheduled event. |
| 155 |
*/ |
155 |
*/ |
| 156 |
template <typename MEM, typename OBJ> |
156 |
template <typename MEM, typename OBJ> |
| 157 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj); |
157 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj); |
| 158 |
|
158 |
|
| 159 |
/** |
159 |
/** |
| 160 |
* @param time the relative expiration time of the event. |
160 |
* \param time the relative expiration time of the event. |
| 161 |
* @param mem_ptr member method pointer to invoke |
161 |
* \param mem_ptr member method pointer to invoke |
| 162 |
* @param obj the object on which to invoke the member method |
162 |
* \param obj the object on which to invoke the member method |
| 163 |
* @param a1 the first argument to pass to the invoked method |
163 |
* \param a1 the first argument to pass to the invoked method |
| 164 |
* @returns an id for the scheduled event. |
164 |
* \returns an id for the scheduled event. |
| 165 |
*/ |
165 |
*/ |
| 166 |
template <typename MEM, typename OBJ, typename T1> |
166 |
template <typename MEM, typename OBJ, typename T1> |
| 167 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1); |
167 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1); |
| 168 |
|
168 |
|
| 169 |
/** |
169 |
/** |
| 170 |
* @param time the relative expiration time of the event. |
170 |
* \param time the relative expiration time of the event. |
| 171 |
* @param mem_ptr member method pointer to invoke |
171 |
* \param mem_ptr member method pointer to invoke |
| 172 |
* @param obj the object on which to invoke the member method |
172 |
* \param obj the object on which to invoke the member method |
| 173 |
* @param a1 the first argument to pass to the invoked method |
173 |
* \param a1 the first argument to pass to the invoked method |
| 174 |
* @param a2 the second argument to pass to the invoked method |
174 |
* \param a2 the second argument to pass to the invoked method |
| 175 |
* @returns an id for the scheduled event. |
175 |
* \returns an id for the scheduled event. |
| 176 |
*/ |
176 |
*/ |
| 177 |
template <typename MEM, typename OBJ, typename T1, typename T2> |
177 |
template <typename MEM, typename OBJ, typename T1, typename T2> |
| 178 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
178 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
| 179 |
|
179 |
|
| 180 |
/** |
180 |
/** |
| 181 |
* @param time the relative expiration time of the event. |
181 |
* \param time the relative expiration time of the event. |
| 182 |
* @param mem_ptr member method pointer to invoke |
182 |
* \param mem_ptr member method pointer to invoke |
| 183 |
* @param obj the object on which to invoke the member method |
183 |
* \param obj the object on which to invoke the member method |
| 184 |
* @param a1 the first argument to pass to the invoked method |
184 |
* \param a1 the first argument to pass to the invoked method |
| 185 |
* @param a2 the second argument to pass to the invoked method |
185 |
* \param a2 the second argument to pass to the invoked method |
| 186 |
* @param a3 the third argument to pass to the invoked method |
186 |
* \param a3 the third argument to pass to the invoked method |
| 187 |
* @returns an id for the scheduled event. |
187 |
* \returns an id for the scheduled event. |
| 188 |
*/ |
188 |
*/ |
| 189 |
template <typename MEM, typename OBJ, |
189 |
template <typename MEM, typename OBJ, |
| 190 |
typename T1, typename T2, typename T3> |
190 |
typename T1, typename T2, typename T3> |
| 191 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
191 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
| 192 |
|
192 |
|
| 193 |
/** |
193 |
/** |
| 194 |
* @param time the relative expiration time of the event. |
194 |
* \param time the relative expiration time of the event. |
| 195 |
* @param mem_ptr member method pointer to invoke |
195 |
* \param mem_ptr member method pointer to invoke |
| 196 |
* @param obj the object on which to invoke the member method |
196 |
* \param obj the object on which to invoke the member method |
| 197 |
* @param a1 the first argument to pass to the invoked method |
197 |
* \param a1 the first argument to pass to the invoked method |
| 198 |
* @param a2 the second argument to pass to the invoked method |
198 |
* \param a2 the second argument to pass to the invoked method |
| 199 |
* @param a3 the third argument to pass to the invoked method |
199 |
* \param a3 the third argument to pass to the invoked method |
| 200 |
* @param a4 the fourth argument to pass to the invoked method |
200 |
* \param a4 the fourth argument to pass to the invoked method |
| 201 |
* @returns an id for the scheduled event. |
201 |
* \returns an id for the scheduled event. |
| 202 |
*/ |
202 |
*/ |
| 203 |
template <typename MEM, typename OBJ, |
203 |
template <typename MEM, typename OBJ, |
| 204 |
typename T1, typename T2, typename T3, typename T4> |
204 |
typename T1, typename T2, typename T3, typename T4> |
| 205 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4); |
205 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4); |
| 206 |
|
206 |
|
| 207 |
/** |
207 |
/** |
| 208 |
* @param time the relative expiration time of the event. |
208 |
* \param time the relative expiration time of the event. |
| 209 |
* @param mem_ptr member method pointer to invoke |
209 |
* \param mem_ptr member method pointer to invoke |
| 210 |
* @param obj the object on which to invoke the member method |
210 |
* \param obj the object on which to invoke the member method |
| 211 |
* @param a1 the first argument to pass to the invoked method |
211 |
* \param a1 the first argument to pass to the invoked method |
| 212 |
* @param a2 the second argument to pass to the invoked method |
212 |
* \param a2 the second argument to pass to the invoked method |
| 213 |
* @param a3 the third argument to pass to the invoked method |
213 |
* \param a3 the third argument to pass to the invoked method |
| 214 |
* @param a4 the fourth argument to pass to the invoked method |
214 |
* \param a4 the fourth argument to pass to the invoked method |
| 215 |
* @param a5 the fifth argument to pass to the invoked method |
215 |
* \param a5 the fifth argument to pass to the invoked method |
| 216 |
* @returns an id for the scheduled event. |
216 |
* \returns an id for the scheduled event. |
| 217 |
*/ |
217 |
*/ |
| 218 |
template <typename MEM, typename OBJ, |
218 |
template <typename MEM, typename OBJ, |
| 219 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
219 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
| 220 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, |
220 |
static EventId Schedule (Time const &time, MEM mem_ptr, OBJ obj, |
| 221 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
221 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
| 222 |
/** |
222 |
/** |
| 223 |
* @param time the relative expiration time of the event. |
223 |
* \param time the relative expiration time of the event. |
| 224 |
* @param f the function to invoke |
224 |
* \param f the function to invoke |
| 225 |
* @returns an id for the scheduled event. |
225 |
* \returns an id for the scheduled event. |
| 226 |
*/ |
226 |
*/ |
| 227 |
static EventId Schedule (Time const &time, void (*f)(void)); |
227 |
static EventId Schedule (Time const &time, void (*f)(void)); |
| 228 |
|
228 |
|
| 229 |
/** |
229 |
/** |
| 230 |
* @param time the relative expiration time of the event. |
230 |
* \param time the relative expiration time of the event. |
| 231 |
* @param f the function to invoke |
231 |
* \param f the function to invoke |
| 232 |
* @param a1 the first argument to pass to the function to invoke |
232 |
* \param a1 the first argument to pass to the function to invoke |
| 233 |
* @returns an id for the scheduled event. |
233 |
* \returns an id for the scheduled event. |
| 234 |
*/ |
234 |
*/ |
| 235 |
template <typename U1, typename T1> |
235 |
template <typename U1, typename T1> |
| 236 |
static EventId Schedule (Time const &time, void (*f)(U1), T1 a1); |
236 |
static EventId Schedule (Time const &time, void (*f)(U1), T1 a1); |
| 237 |
|
237 |
|
| 238 |
/** |
238 |
/** |
| 239 |
* @param time the relative expiration time of the event. |
239 |
* \param time the relative expiration time of the event. |
| 240 |
* @param f the function to invoke |
240 |
* \param f the function to invoke |
| 241 |
* @param a1 the first argument to pass to the function to invoke |
241 |
* \param a1 the first argument to pass to the function to invoke |
| 242 |
* @param a2 the second argument to pass to the function to invoke |
242 |
* \param a2 the second argument to pass to the function to invoke |
| 243 |
* @returns an id for the scheduled event. |
243 |
* \returns an id for the scheduled event. |
| 244 |
*/ |
244 |
*/ |
| 245 |
template <typename U1, typename U2, typename T1, typename T2> |
245 |
template <typename U1, typename U2, typename T1, typename T2> |
| 246 |
static EventId Schedule (Time const &time, void (*f)(U1,U2), T1 a1, T2 a2); |
246 |
static EventId Schedule (Time const &time, void (*f)(U1,U2), T1 a1, T2 a2); |
| 247 |
|
247 |
|
| 248 |
/** |
248 |
/** |
| 249 |
* @param time the relative expiration time of the event. |
249 |
* \param time the relative expiration time of the event. |
| 250 |
* @param f the function to invoke |
250 |
* \param f the function to invoke |
| 251 |
* @param a1 the first argument to pass to the function to invoke |
251 |
* \param a1 the first argument to pass to the function to invoke |
| 252 |
* @param a2 the second argument to pass to the function to invoke |
252 |
* \param a2 the second argument to pass to the function to invoke |
| 253 |
* @param a3 the third argument to pass to the function to invoke |
253 |
* \param a3 the third argument to pass to the function to invoke |
| 254 |
* @returns an id for the scheduled event. |
254 |
* \returns an id for the scheduled event. |
| 255 |
*/ |
255 |
*/ |
| 256 |
template <typename U1, typename U2, typename U3, typename T1, typename T2, typename T3> |
256 |
template <typename U1, typename U2, typename U3, typename T1, typename T2, typename T3> |
| 257 |
static EventId Schedule (Time const &time, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
257 |
static EventId Schedule (Time const &time, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
| 258 |
|
258 |
|
| 259 |
/** |
259 |
/** |
| 260 |
* @param time the relative expiration time of the event. |
260 |
* \param time the relative expiration time of the event. |
| 261 |
* @param f the function to invoke |
261 |
* \param f the function to invoke |
| 262 |
* @param a1 the first argument to pass to the function to invoke |
262 |
* \param a1 the first argument to pass to the function to invoke |
| 263 |
* @param a2 the second argument to pass to the function to invoke |
263 |
* \param a2 the second argument to pass to the function to invoke |
| 264 |
* @param a3 the third argument to pass to the function to invoke |
264 |
* \param a3 the third argument to pass to the function to invoke |
| 265 |
* @param a4 the fourth argument to pass to the function to invoke |
265 |
* \param a4 the fourth argument to pass to the function to invoke |
| 266 |
* @returns an id for the scheduled event. |
266 |
* \returns an id for the scheduled event. |
| 267 |
*/ |
267 |
*/ |
| 268 |
template <typename U1, typename U2, typename U3, typename U4, |
268 |
template <typename U1, typename U2, typename U3, typename U4, |
| 269 |
typename T1, typename T2, typename T3, typename T4> |
269 |
typename T1, typename T2, typename T3, typename T4> |
| 270 |
static EventId Schedule (Time const &time, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
270 |
static EventId Schedule (Time const &time, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
| 271 |
|
271 |
|
| 272 |
/** |
272 |
/** |
| 273 |
* @param time the relative expiration time of the event. |
273 |
* \param time the relative expiration time of the event. |
| 274 |
* @param f the function to invoke |
274 |
* \param f the function to invoke |
| 275 |
* @param a1 the first argument to pass to the function to invoke |
275 |
* \param a1 the first argument to pass to the function to invoke |
| 276 |
* @param a2 the second argument to pass to the function to invoke |
276 |
* \param a2 the second argument to pass to the function to invoke |
| 277 |
* @param a3 the third argument to pass to the function to invoke |
277 |
* \param a3 the third argument to pass to the function to invoke |
| 278 |
* @param a4 the fourth argument to pass to the function to invoke |
278 |
* \param a4 the fourth argument to pass to the function to invoke |
| 279 |
* @param a5 the fifth argument to pass to the function to invoke |
279 |
* \param a5 the fifth argument to pass to the function to invoke |
| 280 |
* @returns an id for the scheduled event. |
280 |
* \returns an id for the scheduled event. |
| 281 |
*/ |
281 |
*/ |
| 282 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
282 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
| 283 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
283 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
|
|
| 287 |
* Schedule an event with the given context. |
287 |
* Schedule an event with the given context. |
| 288 |
* A context of 0xffffffff means no context is specified. |
288 |
* A context of 0xffffffff means no context is specified. |
| 289 |
* |
289 |
* |
| 290 |
* @param time the relative expiration time of the event. |
290 |
* \param time the relative expiration time of the event. |
| 291 |
* @param context user-specified context parameter |
291 |
* \param context user-specified context parameter |
| 292 |
* @param mem_ptr member method pointer to invoke |
292 |
* \param mem_ptr member method pointer to invoke |
| 293 |
* @param obj the object on which to invoke the member method |
293 |
* \param obj the object on which to invoke the member method |
| 294 |
*/ |
294 |
*/ |
| 295 |
template <typename MEM, typename OBJ> |
295 |
template <typename MEM, typename OBJ> |
| 296 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj); |
296 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj); |
| 297 |
|
297 |
|
| 298 |
/** |
298 |
/** |
| 299 |
* @param time the relative expiration time of the event. |
299 |
* \param time the relative expiration time of the event. |
| 300 |
* @param context user-specified context parameter |
300 |
* \param context user-specified context parameter |
| 301 |
* @param mem_ptr member method pointer to invoke |
301 |
* \param mem_ptr member method pointer to invoke |
| 302 |
* @param obj the object on which to invoke the member method |
302 |
* \param obj the object on which to invoke the member method |
| 303 |
* @param a1 the first argument to pass to the invoked method |
303 |
* \param a1 the first argument to pass to the invoked method |
| 304 |
*/ |
304 |
*/ |
| 305 |
template <typename MEM, typename OBJ, typename T1> |
305 |
template <typename MEM, typename OBJ, typename T1> |
| 306 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1); |
306 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1); |
| 307 |
|
307 |
|
| 308 |
/** |
308 |
/** |
| 309 |
* @param time the relative expiration time of the event. |
309 |
* \param time the relative expiration time of the event. |
| 310 |
* @param context user-specified context parameter |
310 |
* \param context user-specified context parameter |
| 311 |
* @param mem_ptr member method pointer to invoke |
311 |
* \param mem_ptr member method pointer to invoke |
| 312 |
* @param obj the object on which to invoke the member method |
312 |
* \param obj the object on which to invoke the member method |
| 313 |
* @param a1 the first argument to pass to the invoked method |
313 |
* \param a1 the first argument to pass to the invoked method |
| 314 |
* @param a2 the second argument to pass to the invoked method |
314 |
* \param a2 the second argument to pass to the invoked method |
| 315 |
*/ |
315 |
*/ |
| 316 |
template <typename MEM, typename OBJ, typename T1, typename T2> |
316 |
template <typename MEM, typename OBJ, typename T1, typename T2> |
| 317 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
317 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
| 318 |
|
318 |
|
| 319 |
/** |
319 |
/** |
| 320 |
* @param time the relative expiration time of the event. |
320 |
* \param time the relative expiration time of the event. |
| 321 |
* @param context user-specified context parameter |
321 |
* \param context user-specified context parameter |
| 322 |
* @param mem_ptr member method pointer to invoke |
322 |
* \param mem_ptr member method pointer to invoke |
| 323 |
* @param obj the object on which to invoke the member method |
323 |
* \param obj the object on which to invoke the member method |
| 324 |
* @param a1 the first argument to pass to the invoked method |
324 |
* \param a1 the first argument to pass to the invoked method |
| 325 |
* @param a2 the second argument to pass to the invoked method |
325 |
* \param a2 the second argument to pass to the invoked method |
| 326 |
* @param a3 the third argument to pass to the invoked method |
326 |
* \param a3 the third argument to pass to the invoked method |
| 327 |
*/ |
327 |
*/ |
| 328 |
template <typename MEM, typename OBJ, |
328 |
template <typename MEM, typename OBJ, |
| 329 |
typename T1, typename T2, typename T3> |
329 |
typename T1, typename T2, typename T3> |
| 330 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
330 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
| 331 |
|
331 |
|
| 332 |
/** |
332 |
/** |
| 333 |
* @param time the relative expiration time of the event. |
333 |
* \param time the relative expiration time of the event. |
| 334 |
* @param context user-specified context parameter |
334 |
* \param context user-specified context parameter |
| 335 |
* @param mem_ptr member method pointer to invoke |
335 |
* \param mem_ptr member method pointer to invoke |
| 336 |
* @param obj the object on which to invoke the member method |
336 |
* \param obj the object on which to invoke the member method |
| 337 |
* @param a1 the first argument to pass to the invoked method |
337 |
* \param a1 the first argument to pass to the invoked method |
| 338 |
* @param a2 the second argument to pass to the invoked method |
338 |
* \param a2 the second argument to pass to the invoked method |
| 339 |
* @param a3 the third argument to pass to the invoked method |
339 |
* \param a3 the third argument to pass to the invoked method |
| 340 |
* @param a4 the fourth argument to pass to the invoked method |
340 |
* \param a4 the fourth argument to pass to the invoked method |
| 341 |
*/ |
341 |
*/ |
| 342 |
template <typename MEM, typename OBJ, |
342 |
template <typename MEM, typename OBJ, |
| 343 |
typename T1, typename T2, typename T3, typename T4> |
343 |
typename T1, typename T2, typename T3, typename T4> |
| 344 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4); |
344 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4); |
| 345 |
|
345 |
|
| 346 |
/** |
346 |
/** |
| 347 |
* @param time the relative expiration time of the event. |
347 |
* \param time the relative expiration time of the event. |
| 348 |
* @param context user-specified context parameter |
348 |
* \param context user-specified context parameter |
| 349 |
* @param mem_ptr member method pointer to invoke |
349 |
* \param mem_ptr member method pointer to invoke |
| 350 |
* @param obj the object on which to invoke the member method |
350 |
* \param obj the object on which to invoke the member method |
| 351 |
* @param a1 the first argument to pass to the invoked method |
351 |
* \param a1 the first argument to pass to the invoked method |
| 352 |
* @param a2 the second argument to pass to the invoked method |
352 |
* \param a2 the second argument to pass to the invoked method |
| 353 |
* @param a3 the third argument to pass to the invoked method |
353 |
* \param a3 the third argument to pass to the invoked method |
| 354 |
* @param a4 the fourth argument to pass to the invoked method |
354 |
* \param a4 the fourth argument to pass to the invoked method |
| 355 |
* @param a5 the fifth argument to pass to the invoked method |
355 |
* \param a5 the fifth argument to pass to the invoked method |
| 356 |
*/ |
356 |
*/ |
| 357 |
template <typename MEM, typename OBJ, |
357 |
template <typename MEM, typename OBJ, |
| 358 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
358 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
| 359 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, |
359 |
static void ScheduleWithContext (uint32_t context, Time const &time, MEM mem_ptr, OBJ obj, |
| 360 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
360 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
| 361 |
/** |
361 |
/** |
| 362 |
* @param time the relative expiration time of the event. |
362 |
* \param time the relative expiration time of the event. |
| 363 |
* @param context user-specified context parameter |
363 |
* \param context user-specified context parameter |
| 364 |
* @param f the function to invoke |
364 |
* \param f the function to invoke |
| 365 |
*/ |
365 |
*/ |
| 366 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(void)); |
366 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(void)); |
| 367 |
|
367 |
|
| 368 |
/** |
368 |
/** |
| 369 |
* @param time the relative expiration time of the event. |
369 |
* \param time the relative expiration time of the event. |
| 370 |
* @param context user-specified context parameter |
370 |
* \param context user-specified context parameter |
| 371 |
* @param f the function to invoke |
371 |
* \param f the function to invoke |
| 372 |
* @param a1 the first argument to pass to the function to invoke |
372 |
* \param a1 the first argument to pass to the function to invoke |
| 373 |
*/ |
373 |
*/ |
| 374 |
template <typename U1, typename T1> |
374 |
template <typename U1, typename T1> |
| 375 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1), T1 a1); |
375 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1), T1 a1); |
| 376 |
|
376 |
|
| 377 |
/** |
377 |
/** |
| 378 |
* @param time the relative expiration time of the event. |
378 |
* \param time the relative expiration time of the event. |
| 379 |
* @param context user-specified context parameter |
379 |
* \param context user-specified context parameter |
| 380 |
* @param f the function to invoke |
380 |
* \param f the function to invoke |
| 381 |
* @param a1 the first argument to pass to the function to invoke |
381 |
* \param a1 the first argument to pass to the function to invoke |
| 382 |
* @param a2 the second argument to pass to the function to invoke |
382 |
* \param a2 the second argument to pass to the function to invoke |
| 383 |
*/ |
383 |
*/ |
| 384 |
template <typename U1, typename U2, typename T1, typename T2> |
384 |
template <typename U1, typename U2, typename T1, typename T2> |
| 385 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1,U2), T1 a1, T2 a2); |
385 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1,U2), T1 a1, T2 a2); |
| 386 |
|
386 |
|
| 387 |
/** |
387 |
/** |
| 388 |
* @param time the relative expiration time of the event. |
388 |
* \param time the relative expiration time of the event. |
| 389 |
* @param context user-specified context parameter |
389 |
* \param context user-specified context parameter |
| 390 |
* @param f the function to invoke |
390 |
* \param f the function to invoke |
| 391 |
* @param a1 the first argument to pass to the function to invoke |
391 |
* \param a1 the first argument to pass to the function to invoke |
| 392 |
* @param a2 the second argument to pass to the function to invoke |
392 |
* \param a2 the second argument to pass to the function to invoke |
| 393 |
* @param a3 the third argument to pass to the function to invoke |
393 |
* \param a3 the third argument to pass to the function to invoke |
| 394 |
*/ |
394 |
*/ |
| 395 |
template <typename U1, typename U2, typename U3, typename T1, typename T2, typename T3> |
395 |
template <typename U1, typename U2, typename U3, typename T1, typename T2, typename T3> |
| 396 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
396 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
| 397 |
|
397 |
|
| 398 |
/** |
398 |
/** |
| 399 |
* @param time the relative expiration time of the event. |
399 |
* \param time the relative expiration time of the event. |
| 400 |
* @param context user-specified context parameter |
400 |
* \param context user-specified context parameter |
| 401 |
* @param f the function to invoke |
401 |
* \param f the function to invoke |
| 402 |
* @param a1 the first argument to pass to the function to invoke |
402 |
* \param a1 the first argument to pass to the function to invoke |
| 403 |
* @param a2 the second argument to pass to the function to invoke |
403 |
* \param a2 the second argument to pass to the function to invoke |
| 404 |
* @param a3 the third argument to pass to the function to invoke |
404 |
* \param a3 the third argument to pass to the function to invoke |
| 405 |
* @param a4 the fourth argument to pass to the function to invoke |
405 |
* \param a4 the fourth argument to pass to the function to invoke |
| 406 |
*/ |
406 |
*/ |
| 407 |
template <typename U1, typename U2, typename U3, typename U4, |
407 |
template <typename U1, typename U2, typename U3, typename U4, |
| 408 |
typename T1, typename T2, typename T3, typename T4> |
408 |
typename T1, typename T2, typename T3, typename T4> |
| 409 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
409 |
static void ScheduleWithContext (uint32_t context, Time const &time, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
| 410 |
|
410 |
|
| 411 |
/** |
411 |
/** |
| 412 |
* @param time the relative expiration time of the event. |
412 |
* \param time the relative expiration time of the event. |
| 413 |
* @param context user-specified context parameter |
413 |
* \param context user-specified context parameter |
| 414 |
* @param f the function to invoke |
414 |
* \param f the function to invoke |
| 415 |
* @param a1 the first argument to pass to the function to invoke |
415 |
* \param a1 the first argument to pass to the function to invoke |
| 416 |
* @param a2 the second argument to pass to the function to invoke |
416 |
* \param a2 the second argument to pass to the function to invoke |
| 417 |
* @param a3 the third argument to pass to the function to invoke |
417 |
* \param a3 the third argument to pass to the function to invoke |
| 418 |
* @param a4 the fourth argument to pass to the function to invoke |
418 |
* \param a4 the fourth argument to pass to the function to invoke |
| 419 |
* @param a5 the fifth argument to pass to the function to invoke |
419 |
* \param a5 the fifth argument to pass to the function to invoke |
| 420 |
*/ |
420 |
*/ |
| 421 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
421 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
| 422 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
422 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
|
|
| 427 |
* to expire "Now" are scheduled FIFO, after all normal events |
427 |
* to expire "Now" are scheduled FIFO, after all normal events |
| 428 |
* have expired. |
428 |
* have expired. |
| 429 |
* |
429 |
* |
| 430 |
* @param mem_ptr member method pointer to invoke |
430 |
* \param mem_ptr member method pointer to invoke |
| 431 |
* @param obj the object on which to invoke the member method |
431 |
* \param obj the object on which to invoke the member method |
| 432 |
*/ |
432 |
*/ |
| 433 |
template <typename MEM, typename OBJ> |
433 |
template <typename MEM, typename OBJ> |
| 434 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj); |
434 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj); |
| 435 |
|
435 |
|
| 436 |
/** |
436 |
/** |
| 437 |
* @param mem_ptr member method pointer to invoke |
437 |
* \param mem_ptr member method pointer to invoke |
| 438 |
* @param obj the object on which to invoke the member method |
438 |
* \param obj the object on which to invoke the member method |
| 439 |
* @param a1 the first argument to pass to the invoked method |
439 |
* \param a1 the first argument to pass to the invoked method |
| 440 |
*/ |
440 |
*/ |
| 441 |
template <typename MEM, typename OBJ, |
441 |
template <typename MEM, typename OBJ, |
| 442 |
typename T1> |
442 |
typename T1> |
| 443 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1); |
443 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1); |
| 444 |
|
444 |
|
| 445 |
/** |
445 |
/** |
| 446 |
* @param mem_ptr member method pointer to invoke |
446 |
* \param mem_ptr member method pointer to invoke |
| 447 |
* @param obj the object on which to invoke the member method |
447 |
* \param obj the object on which to invoke the member method |
| 448 |
* @param a1 the first argument to pass to the invoked method |
448 |
* \param a1 the first argument to pass to the invoked method |
| 449 |
* @param a2 the second argument to pass to the invoked method |
449 |
* \param a2 the second argument to pass to the invoked method |
| 450 |
*/ |
450 |
*/ |
| 451 |
template <typename MEM, typename OBJ, |
451 |
template <typename MEM, typename OBJ, |
| 452 |
typename T1, typename T2> |
452 |
typename T1, typename T2> |
| 453 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
453 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
| 454 |
|
454 |
|
| 455 |
/** |
455 |
/** |
| 456 |
* @param mem_ptr member method pointer to invoke |
456 |
* \param mem_ptr member method pointer to invoke |
| 457 |
* @param obj the object on which to invoke the member method |
457 |
* \param obj the object on which to invoke the member method |
| 458 |
* @param a1 the first argument to pass to the invoked method |
458 |
* \param a1 the first argument to pass to the invoked method |
| 459 |
* @param a2 the second argument to pass to the invoked method |
459 |
* \param a2 the second argument to pass to the invoked method |
| 460 |
* @param a3 the third argument to pass to the invoked method |
460 |
* \param a3 the third argument to pass to the invoked method |
| 461 |
*/ |
461 |
*/ |
| 462 |
template <typename MEM, typename OBJ, |
462 |
template <typename MEM, typename OBJ, |
| 463 |
typename T1, typename T2, typename T3> |
463 |
typename T1, typename T2, typename T3> |
| 464 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
464 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
| 465 |
|
465 |
|
| 466 |
/** |
466 |
/** |
| 467 |
* @param mem_ptr member method pointer to invoke |
467 |
* \param mem_ptr member method pointer to invoke |
| 468 |
* @param obj the object on which to invoke the member method |
468 |
* \param obj the object on which to invoke the member method |
| 469 |
* @param a1 the first argument to pass to the invoked method |
469 |
* \param a1 the first argument to pass to the invoked method |
| 470 |
* @param a2 the second argument to pass to the invoked method |
470 |
* \param a2 the second argument to pass to the invoked method |
| 471 |
* @param a3 the third argument to pass to the invoked method |
471 |
* \param a3 the third argument to pass to the invoked method |
| 472 |
* @param a4 the fourth argument to pass to the invoked method |
472 |
* \param a4 the fourth argument to pass to the invoked method |
| 473 |
*/ |
473 |
*/ |
| 474 |
template <typename MEM, typename OBJ, |
474 |
template <typename MEM, typename OBJ, |
| 475 |
typename T1, typename T2, typename T3, typename T4> |
475 |
typename T1, typename T2, typename T3, typename T4> |
| 476 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, |
476 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, |
| 477 |
T1 a1, T2 a2, T3 a3, T4 a4); |
477 |
T1 a1, T2 a2, T3 a3, T4 a4); |
| 478 |
/** |
478 |
/** |
| 479 |
* @param mem_ptr member method pointer to invoke |
479 |
* \param mem_ptr member method pointer to invoke |
| 480 |
* @param obj the object on which to invoke the member method |
480 |
* \param obj the object on which to invoke the member method |
| 481 |
* @param a1 the first argument to pass to the invoked method |
481 |
* \param a1 the first argument to pass to the invoked method |
| 482 |
* @param a2 the second argument to pass to the invoked method |
482 |
* \param a2 the second argument to pass to the invoked method |
| 483 |
* @param a3 the third argument to pass to the invoked method |
483 |
* \param a3 the third argument to pass to the invoked method |
| 484 |
* @param a4 the fourth argument to pass to the invoked method |
484 |
* \param a4 the fourth argument to pass to the invoked method |
| 485 |
* @param a5 the fifth argument to pass to the invoked method |
485 |
* \param a5 the fifth argument to pass to the invoked method |
| 486 |
*/ |
486 |
*/ |
| 487 |
template <typename MEM, typename OBJ, |
487 |
template <typename MEM, typename OBJ, |
| 488 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
488 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
| 489 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, |
489 |
static EventId ScheduleNow (MEM mem_ptr, OBJ obj, |
| 490 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
490 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
| 491 |
/** |
491 |
/** |
| 492 |
* @param f the function to invoke |
492 |
* \param f the function to invoke |
| 493 |
*/ |
493 |
*/ |
| 494 |
static EventId ScheduleNow (void (*f)(void)); |
494 |
static EventId ScheduleNow (void (*f)(void)); |
| 495 |
|
495 |
|
| 496 |
/** |
496 |
/** |
| 497 |
* @param f the function to invoke |
497 |
* \param f the function to invoke |
| 498 |
* @param a1 the first argument to pass to the function to invoke |
498 |
* \param a1 the first argument to pass to the function to invoke |
| 499 |
*/ |
499 |
*/ |
| 500 |
template <typename U1, |
500 |
template <typename U1, |
| 501 |
typename T1> |
501 |
typename T1> |
| 502 |
static EventId ScheduleNow (void (*f)(U1), T1 a1); |
502 |
static EventId ScheduleNow (void (*f)(U1), T1 a1); |
| 503 |
|
503 |
|
| 504 |
/** |
504 |
/** |
| 505 |
* @param f the function to invoke |
505 |
* \param f the function to invoke |
| 506 |
* @param a1 the first argument to pass to the function to invoke |
506 |
* \param a1 the first argument to pass to the function to invoke |
| 507 |
* @param a2 the second argument to pass to the function to invoke |
507 |
* \param a2 the second argument to pass to the function to invoke |
| 508 |
*/ |
508 |
*/ |
| 509 |
template <typename U1, typename U2, |
509 |
template <typename U1, typename U2, |
| 510 |
typename T1, typename T2> |
510 |
typename T1, typename T2> |
| 511 |
static EventId ScheduleNow (void (*f)(U1,U2), T1 a1, T2 a2); |
511 |
static EventId ScheduleNow (void (*f)(U1,U2), T1 a1, T2 a2); |
| 512 |
|
512 |
|
| 513 |
/** |
513 |
/** |
| 514 |
* @param f the function to invoke |
514 |
* \param f the function to invoke |
| 515 |
* @param a1 the first argument to pass to the function to invoke |
515 |
* \param a1 the first argument to pass to the function to invoke |
| 516 |
* @param a2 the second argument to pass to the function to invoke |
516 |
* \param a2 the second argument to pass to the function to invoke |
| 517 |
* @param a3 the third argument to pass to the function to invoke |
517 |
* \param a3 the third argument to pass to the function to invoke |
| 518 |
*/ |
518 |
*/ |
| 519 |
template <typename U1, typename U2, typename U3, |
519 |
template <typename U1, typename U2, typename U3, |
| 520 |
typename T1, typename T2, typename T3> |
520 |
typename T1, typename T2, typename T3> |
| 521 |
static EventId ScheduleNow (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
521 |
static EventId ScheduleNow (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
| 522 |
|
522 |
|
| 523 |
/** |
523 |
/** |
| 524 |
* @param f the function to invoke |
524 |
* \param f the function to invoke |
| 525 |
* @param a1 the first argument to pass to the function to invoke |
525 |
* \param a1 the first argument to pass to the function to invoke |
| 526 |
* @param a2 the second argument to pass to the function to invoke |
526 |
* \param a2 the second argument to pass to the function to invoke |
| 527 |
* @param a3 the third argument to pass to the function to invoke |
527 |
* \param a3 the third argument to pass to the function to invoke |
| 528 |
* @param a4 the fourth argument to pass to the function to invoke |
528 |
* \param a4 the fourth argument to pass to the function to invoke |
| 529 |
*/ |
529 |
*/ |
| 530 |
template <typename U1, typename U2, typename U3, typename U4, |
530 |
template <typename U1, typename U2, typename U3, typename U4, |
| 531 |
typename T1, typename T2, typename T3, typename T4> |
531 |
typename T1, typename T2, typename T3, typename T4> |
| 532 |
static EventId ScheduleNow (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
532 |
static EventId ScheduleNow (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
| 533 |
|
533 |
|
| 534 |
/** |
534 |
/** |
| 535 |
* @param f the function to invoke |
535 |
* \param f the function to invoke |
| 536 |
* @param a1 the first argument to pass to the function to invoke |
536 |
* \param a1 the first argument to pass to the function to invoke |
| 537 |
* @param a2 the second argument to pass to the function to invoke |
537 |
* \param a2 the second argument to pass to the function to invoke |
| 538 |
* @param a3 the third argument to pass to the function to invoke |
538 |
* \param a3 the third argument to pass to the function to invoke |
| 539 |
* @param a4 the fourth argument to pass to the function to invoke |
539 |
* \param a4 the fourth argument to pass to the function to invoke |
| 540 |
* @param a5 the fifth argument to pass to the function to invoke |
540 |
* \param a5 the fifth argument to pass to the function to invoke |
| 541 |
*/ |
541 |
*/ |
| 542 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
542 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
| 543 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
543 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
|
|
| 549 |
* after all normal events have expired and only when |
549 |
* after all normal events have expired and only when |
| 550 |
* Simulator::Destroy is invoked. |
550 |
* Simulator::Destroy is invoked. |
| 551 |
* |
551 |
* |
| 552 |
* @param mem_ptr member method pointer to invoke |
552 |
* \param mem_ptr member method pointer to invoke |
| 553 |
* @param obj the object on which to invoke the member method |
553 |
* \param obj the object on which to invoke the member method |
| 554 |
*/ |
554 |
*/ |
| 555 |
template <typename MEM, typename OBJ> |
555 |
template <typename MEM, typename OBJ> |
| 556 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj); |
556 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj); |
| 557 |
|
557 |
|
| 558 |
/** |
558 |
/** |
| 559 |
* @param mem_ptr member method pointer to invoke |
559 |
* \param mem_ptr member method pointer to invoke |
| 560 |
* @param obj the object on which to invoke the member method |
560 |
* \param obj the object on which to invoke the member method |
| 561 |
* @param a1 the first argument to pass to the invoked method |
561 |
* \param a1 the first argument to pass to the invoked method |
| 562 |
*/ |
562 |
*/ |
| 563 |
template <typename MEM, typename OBJ, |
563 |
template <typename MEM, typename OBJ, |
| 564 |
typename T1> |
564 |
typename T1> |
| 565 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1); |
565 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1); |
| 566 |
|
566 |
|
| 567 |
/** |
567 |
/** |
| 568 |
* @param mem_ptr member method pointer to invoke |
568 |
* \param mem_ptr member method pointer to invoke |
| 569 |
* @param obj the object on which to invoke the member method |
569 |
* \param obj the object on which to invoke the member method |
| 570 |
* @param a1 the first argument to pass to the invoked method |
570 |
* \param a1 the first argument to pass to the invoked method |
| 571 |
* @param a2 the second argument to pass to the invoked method |
571 |
* \param a2 the second argument to pass to the invoked method |
| 572 |
*/ |
572 |
*/ |
| 573 |
template <typename MEM, typename OBJ, |
573 |
template <typename MEM, typename OBJ, |
| 574 |
typename T1, typename T2> |
574 |
typename T1, typename T2> |
| 575 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
575 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2); |
| 576 |
|
576 |
|
| 577 |
/** |
577 |
/** |
| 578 |
* @param mem_ptr member method pointer to invoke |
578 |
* \param mem_ptr member method pointer to invoke |
| 579 |
* @param obj the object on which to invoke the member method |
579 |
* \param obj the object on which to invoke the member method |
| 580 |
* @param a1 the first argument to pass to the invoked method |
580 |
* \param a1 the first argument to pass to the invoked method |
| 581 |
* @param a2 the second argument to pass to the invoked method |
581 |
* \param a2 the second argument to pass to the invoked method |
| 582 |
* @param a3 the third argument to pass to the invoked method |
582 |
* \param a3 the third argument to pass to the invoked method |
| 583 |
*/ |
583 |
*/ |
| 584 |
template <typename MEM, typename OBJ, |
584 |
template <typename MEM, typename OBJ, |
| 585 |
typename T1, typename T2, typename T3> |
585 |
typename T1, typename T2, typename T3> |
| 586 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
586 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3); |
| 587 |
|
587 |
|
| 588 |
/** |
588 |
/** |
| 589 |
* @param mem_ptr member method pointer to invoke |
589 |
* \param mem_ptr member method pointer to invoke |
| 590 |
* @param obj the object on which to invoke the member method |
590 |
* \param obj the object on which to invoke the member method |
| 591 |
* @param a1 the first argument to pass to the invoked method |
591 |
* \param a1 the first argument to pass to the invoked method |
| 592 |
* @param a2 the second argument to pass to the invoked method |
592 |
* \param a2 the second argument to pass to the invoked method |
| 593 |
* @param a3 the third argument to pass to the invoked method |
593 |
* \param a3 the third argument to pass to the invoked method |
| 594 |
* @param a4 the fourth argument to pass to the invoked method |
594 |
* \param a4 the fourth argument to pass to the invoked method |
| 595 |
*/ |
595 |
*/ |
| 596 |
template <typename MEM, typename OBJ, |
596 |
template <typename MEM, typename OBJ, |
| 597 |
typename T1, typename T2, typename T3, typename T4> |
597 |
typename T1, typename T2, typename T3, typename T4> |
| 598 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, |
598 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, |
| 599 |
T1 a1, T2 a2, T3 a3, T4 a4); |
599 |
T1 a1, T2 a2, T3 a3, T4 a4); |
| 600 |
/** |
600 |
/** |
| 601 |
* @param mem_ptr member method pointer to invoke |
601 |
* \param mem_ptr member method pointer to invoke |
| 602 |
* @param obj the object on which to invoke the member method |
602 |
* \param obj the object on which to invoke the member method |
| 603 |
* @param a1 the first argument to pass to the invoked method |
603 |
* \param a1 the first argument to pass to the invoked method |
| 604 |
* @param a2 the second argument to pass to the invoked method |
604 |
* \param a2 the second argument to pass to the invoked method |
| 605 |
* @param a3 the third argument to pass to the invoked method |
605 |
* \param a3 the third argument to pass to the invoked method |
| 606 |
* @param a4 the fourth argument to pass to the invoked method |
606 |
* \param a4 the fourth argument to pass to the invoked method |
| 607 |
* @param a5 the fifth argument to pass to the invoked method |
607 |
* \param a5 the fifth argument to pass to the invoked method |
| 608 |
*/ |
608 |
*/ |
| 609 |
template <typename MEM, typename OBJ, |
609 |
template <typename MEM, typename OBJ, |
| 610 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
610 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
| 611 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, |
611 |
static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, |
| 612 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
612 |
T1 a1, T2 a2, T3 a3, T4 a4, T5 a5); |
| 613 |
/** |
613 |
/** |
| 614 |
* @param f the function to invoke |
614 |
* \param f the function to invoke |
| 615 |
*/ |
615 |
*/ |
| 616 |
static EventId ScheduleDestroy (void (*f)(void)); |
616 |
static EventId ScheduleDestroy (void (*f)(void)); |
| 617 |
|
617 |
|
| 618 |
/** |
618 |
/** |
| 619 |
* @param f the function to invoke |
619 |
* \param f the function to invoke |
| 620 |
* @param a1 the first argument to pass to the function to invoke |
620 |
* \param a1 the first argument to pass to the function to invoke |
| 621 |
*/ |
621 |
*/ |
| 622 |
template <typename U1, |
622 |
template <typename U1, |
| 623 |
typename T1> |
623 |
typename T1> |
| 624 |
static EventId ScheduleDestroy (void (*f)(U1), T1 a1); |
624 |
static EventId ScheduleDestroy (void (*f)(U1), T1 a1); |
| 625 |
|
625 |
|
| 626 |
/** |
626 |
/** |
| 627 |
* @param f the function to invoke |
627 |
* \param f the function to invoke |
| 628 |
* @param a1 the first argument to pass to the function to invoke |
628 |
* \param a1 the first argument to pass to the function to invoke |
| 629 |
* @param a2 the second argument to pass to the function to invoke |
629 |
* \param a2 the second argument to pass to the function to invoke |
| 630 |
*/ |
630 |
*/ |
| 631 |
template <typename U1, typename U2, |
631 |
template <typename U1, typename U2, |
| 632 |
typename T1, typename T2> |
632 |
typename T1, typename T2> |
| 633 |
static EventId ScheduleDestroy (void (*f)(U1,U2), T1 a1, T2 a2); |
633 |
static EventId ScheduleDestroy (void (*f)(U1,U2), T1 a1, T2 a2); |
| 634 |
|
634 |
|
| 635 |
/** |
635 |
/** |
| 636 |
* @param f the function to invoke |
636 |
* \param f the function to invoke |
| 637 |
* @param a1 the first argument to pass to the function to invoke |
637 |
* \param a1 the first argument to pass to the function to invoke |
| 638 |
* @param a2 the second argument to pass to the function to invoke |
638 |
* \param a2 the second argument to pass to the function to invoke |
| 639 |
* @param a3 the third argument to pass to the function to invoke |
639 |
* \param a3 the third argument to pass to the function to invoke |
| 640 |
*/ |
640 |
*/ |
| 641 |
template <typename U1, typename U2, typename U3, |
641 |
template <typename U1, typename U2, typename U3, |
| 642 |
typename T1, typename T2, typename T3> |
642 |
typename T1, typename T2, typename T3> |
| 643 |
static EventId ScheduleDestroy (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
643 |
static EventId ScheduleDestroy (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3); |
| 644 |
|
644 |
|
| 645 |
/** |
645 |
/** |
| 646 |
* @param f the function to invoke |
646 |
* \param f the function to invoke |
| 647 |
* @param a1 the first argument to pass to the function to invoke |
647 |
* \param a1 the first argument to pass to the function to invoke |
| 648 |
* @param a2 the second argument to pass to the function to invoke |
648 |
* \param a2 the second argument to pass to the function to invoke |
| 649 |
* @param a3 the third argument to pass to the function to invoke |
649 |
* \param a3 the third argument to pass to the function to invoke |
| 650 |
* @param a4 the fourth argument to pass to the function to invoke |
650 |
* \param a4 the fourth argument to pass to the function to invoke |
| 651 |
*/ |
651 |
*/ |
| 652 |
template <typename U1, typename U2, typename U3, typename U4, |
652 |
template <typename U1, typename U2, typename U3, typename U4, |
| 653 |
typename T1, typename T2, typename T3, typename T4> |
653 |
typename T1, typename T2, typename T3, typename T4> |
| 654 |
static EventId ScheduleDestroy (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
654 |
static EventId ScheduleDestroy (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4); |
| 655 |
|
655 |
|
| 656 |
/** |
656 |
/** |
| 657 |
* @param f the function to invoke |
657 |
* \param f the function to invoke |
| 658 |
* @param a1 the first argument to pass to the function to invoke |
658 |
* \param a1 the first argument to pass to the function to invoke |
| 659 |
* @param a2 the second argument to pass to the function to invoke |
659 |
* \param a2 the second argument to pass to the function to invoke |
| 660 |
* @param a3 the third argument to pass to the function to invoke |
660 |
* \param a3 the third argument to pass to the function to invoke |
| 661 |
* @param a4 the fourth argument to pass to the function to invoke |
661 |
* \param a4 the fourth argument to pass to the function to invoke |
| 662 |
* @param a5 the fifth argument to pass to the function to invoke |
662 |
* \param a5 the fifth argument to pass to the function to invoke |
| 663 |
*/ |
663 |
*/ |
| 664 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
664 |
template <typename U1, typename U2, typename U3, typename U4, typename U5, |
| 665 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
665 |
typename T1, typename T2, typename T3, typename T4, typename T5> |
|
|
| 674 |
* Note that it is not possible to remove events which were scheduled |
674 |
* Note that it is not possible to remove events which were scheduled |
| 675 |
* for the "destroy" time. Doing so will result in a program error (crash). |
675 |
* for the "destroy" time. Doing so will result in a program error (crash). |
| 676 |
* |
676 |
* |
| 677 |
* @param id the event to remove from the list of scheduled events. |
677 |
* \param id the event to remove from the list of scheduled events. |
| 678 |
*/ |
678 |
*/ |
| 679 |
static void Remove (const EventId &id); |
679 |
static void Remove (const EventId &id); |
| 680 |
|
680 |
|
|
|
| 688 |
* Note that it is not possible to cancel events which were scheduled |
688 |
* Note that it is not possible to cancel events which were scheduled |
| 689 |
* for the "destroy" time. Doing so will result in a program error (crash). |
689 |
* for the "destroy" time. Doing so will result in a program error (crash). |
| 690 |
* |
690 |
* |
| 691 |
* @param id the event to cancel |
691 |
* \param id the event to cancel |
| 692 |
*/ |
692 |
*/ |
| 693 |
static void Cancel (const EventId &id); |
693 |
static void Cancel (const EventId &id); |
| 694 |
|
694 |
|
|
|
| 701 |
* which means that if the code executed by the event calls |
701 |
* which means that if the code executed by the event calls |
| 702 |
* this function, it will get true. |
702 |
* this function, it will get true. |
| 703 |
* |
703 |
* |
| 704 |
* @param id the event to test for expiration |
704 |
* \param id the event to test for expiration |
| 705 |
* @returns true if the event has expired, false otherwise. |
705 |
* \returns true if the event has expired, false otherwise. |
| 706 |
*/ |
706 |
*/ |
| 707 |
static bool IsExpired (const EventId &id); |
707 |
static bool IsExpired (const EventId &id); |
| 708 |
|
708 |
|