src/core/model/simulator.h
author Tommaso Pecorella <tommaso.pecorella@unifi.it>
Fri, 11 Sep 2015 10:52:44 +0200
changeset 11666 e8634b0101f7
parent 11538 397bd6465dd9
permissions -rw-r--r--
Missing SetGroupName in two classes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2005 INRIA
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 */
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    21
#ifndef SIMULATOR_H
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    22
#define SIMULATOR_H
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
    24
#include "event-id.h"
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
    25
#include "event-impl.h"
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    26
#include "make-event.h"
108
6fd2357377ed rename time.h to nstime.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 100
diff changeset
    27
#include "nstime.h"
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    28
7383
c5e131450339 remove ns3/ prefix which is un-needed now that all files are in same module.
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7169
diff changeset
    29
#include "object-factory.h"
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    31
#include <stdint.h>
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    32
#include <string>
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    33
11131
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
    34
/**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    35
 * @file
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    36
 * @ingroup simulator
11131
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
    37
 * ns3::Simulator declaration.
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
    38
 */
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
    39
16
99e833adbb46 change yans namespace to ns3
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 9
diff changeset
    40
namespace ns3 {
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    41
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3390
diff changeset
    42
class SimulatorImpl;
3804
94fe4c32956d remove uneeded include.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
    43
class Scheduler;
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    44
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
/**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    46
 * @ingroup core
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    47
 * @defgroup simulator Simulator
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    48
 * @brief Control the virtual time and the execution of simulation events. 
9868
ce6f889c7c1c doxygenate simulator group
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 7796
diff changeset
    49
 */
ce6f889c7c1c doxygenate simulator group
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 7796
diff changeset
    50
/**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    51
 * @ingroup simulator
3182
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 3174
diff changeset
    52
 *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    53
 * @brief Control the scheduling of simulation events. 
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
 *
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    55
 * The internal simulation clock is maintained
682
d876b6dfb32e more dox improvements
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
    56
 * as a 64-bit integer in a unit specified by the user
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    57
 * through the Time::SetResolution function. This means that it is
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
 * not possible to specify event expiration times with anything better
682
d876b6dfb32e more dox improvements
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
    59
 * than this user-specified accuracy. Events whose expiration time is
d876b6dfb32e more dox improvements
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
    60
 * the same modulo this accuracy are scheduled in FIFO order: the 
d876b6dfb32e more dox improvements
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
    61
 * first event inserted in the scheduling queue is scheduled to 
d876b6dfb32e more dox improvements
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
    62
 * expire first.
84
63b3ed9ce4e4 integrate sample code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 76
diff changeset
    63
 * 
63b3ed9ce4e4 integrate sample code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 76
diff changeset
    64
 * A simple example of how to use the Simulator class to schedule events
11414
8bdce024e490 Remove extraneous ' ' around ::
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11131
diff changeset
    65
 * is shown in sample-simulator.cc:
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    66
 * @include src/core/examples/sample-simulator.cc
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    67
 *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    68
 * @todo Define what the simulation or event context means.
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    69
 */
3390
5caa582619ec kill dead unimplemented API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3369
diff changeset
    70
class Simulator 
5caa582619ec kill dead unimplemented API
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3369
diff changeset
    71
{
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    72
public:
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
    73
  /**
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
    74
   * @param [in] impl A new simulator implementation.
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    75
   *
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    76
   * The simulator provides a mechanism to swap out different implementations.
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    77
   * For example, the default implementation is a single-threaded simulator
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    78
   * that performs no realtime synchronization.  By calling this method, you
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    79
   * can substitute in a new simulator implementation that might be multi-
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    80
   * threaded and synchronize events to a realtime clock.
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    81
   *
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    82
   * The simulator implementation can be set when the simulator is not 
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    83
   * running.
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    84
   */
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    85
  static void SetImplementation (Ptr<SimulatorImpl> impl);
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    86
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    87
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    88
   * @brief Get the SimulatorImpl singleton.
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    89
   *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
    90
   * @internal
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    91
   * If the SimulatorImpl singleton hasn't been created yet,
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    92
   * this function does so.  At the same time it also creates
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    93
   * the Scheduler.  Both of these respect the global values
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    94
   * which may have been set from the command line or through
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    95
   * the Config system.
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    96
   *
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    97
   * As a side effect we also call LogSetTimePrinter() and
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    98
   * LogSetNodePrinter() with the default implementations
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
    99
   * since we can't really do any logging until we have
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   100
   * a SimulatorImpl and Scheduler.
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   101
   
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   102
   * @return The SimulatorImpl singleton.
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   103
   */
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3809
diff changeset
   104
  static Ptr<SimulatorImpl> GetImplementation (void);
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3809
diff changeset
   105
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   106
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   107
   * @brief Set the scheduler type with an ObjectFactory.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   108
   * @param [in] schedulerFactory The configured ObjectFactory.
3188
080e43146c47 fix a couple of XXX
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3182
diff changeset
   109
   *
080e43146c47 fix a couple of XXX
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3182
diff changeset
   110
   * The event scheduler can be set at any time: the events scheduled
080e43146c47 fix a couple of XXX
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3182
diff changeset
   111
   * in the previous scheduler will be transfered to the new scheduler
080e43146c47 fix a couple of XXX
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3182
diff changeset
   112
   * before we start to use it.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   113
   */
5507
915abd2b907b Simulator::SetScheduler now takes an ObjectFactory
Guillaume Seguin <guillaume@segu.in>
parents: 4448
diff changeset
   114
  static void SetScheduler (ObjectFactory schedulerFactory);
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   115
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   116
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   117
   * Execute the events scheduled with ScheduleDestroy().
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   118
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   119
   * This method is typically invoked at the end of a simulation
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   120
   * to avoid false-positive reports by a leak checker.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   121
   * After this method has been invoked, it is actually possible
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   122
   * to restart a new simulation with a set of calls to Simulator::Run,
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   123
   * Simulator::Schedule and Simulator::ScheduleWithContext.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   124
   */
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   125
  static void Destroy (void);
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   126
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   127
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   128
   * Check if the simulation should finish.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   129
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   130
   * Reasons to finish are because there are
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   131
   * no more events lefts to be scheduled, or if simulation
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   132
   * time has already reached the "stop time" (see Simulator::Stop()).
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   133
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   134
   * @return @c true if no more events or stop time reached.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   135
   */
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   136
  static bool IsFinished (void);
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   137
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   138
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   139
   * Run the simulation.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   140
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   141
   * The simulation will run until one of:
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   142
   *   - No events are present anymore
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   143
   *   - The user called Simulator::Stop
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   144
   *   - The user called Simulator::Stop with a stop time and the
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   145
   *     expiration time of the next event to be processed
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   146
   *     is greater than or equal to the stop time.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   147
   */
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   148
  static void Run (void);
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   149
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   150
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   151
   * Tell the Simulator the calling event should be the last one
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   152
   * executed.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   153
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   154
   * If a running event invokes this method, it will be the last
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   155
   * event executed by the Simulator::Run method before
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   156
   * returning to the caller.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   157
   */
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   158
  static void Stop (void);
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   159
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   160
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   161
   * Schedule the time delay until the Simulator should stop.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   162
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   163
   * Force the Simulator::Run method to return to the caller when the
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   164
   * expiration time of the next event to be processed is greater than
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   165
   * or equal to the stop time.  The stop time is relative to the
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   166
   * current simulation time.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   167
   * @param [in] delay The stop time, relative to the current time.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   168
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   169
  static void Stop (Time const &delay);
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   170
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   171
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   172
   * @name Schedule events (in the same context) to run at a future time.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   173
   */
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   174
  /** @{ */
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   175
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   176
   * Schedule an event to expire after @p delay.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   177
   * This can be thought of as scheduling an event
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   178
   * for the current simulation time plus the @p delay  passed as a
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   179
   * parameter.
3796
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents: 3515
diff changeset
   180
   *
75c6a3d424d9 make simulator schedule calls explicitly relative throughout. fixes multithread problem in realtime simulator
Craig Dowell <craigdo@ee.washington.edu>
parents: 3515
diff changeset
   181
   * When the event expires (when it becomes due to be run), the 
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   182
   * input method will be invoked on the input object.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   183
   *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   184
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   185
   * @tparam OBJ @inferred Class type of the object.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   186
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   187
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   188
   * @param [in] obj The object on which to invoke the member method
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   189
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   190
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   191
  template <typename MEM, typename OBJ>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   192
  static EventId Schedule (Time const &delay, MEM mem_ptr, OBJ obj);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   193
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   194
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   195
   * @see Schedule(const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   196
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   197
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   198
   * @tparam T1 @inferred Type of first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   199
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   200
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   201
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   202
   * @param [in] a1 The first argument to pass to the invoked method
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   203
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   204
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   205
  template <typename MEM, typename OBJ, typename T1>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   206
  static EventId Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   207
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   208
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   209
   * @see Schedule(const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   210
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   211
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   212
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   213
   * @tparam T2 @inferred Type of second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   214
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   215
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   216
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   217
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   218
   * @param [in] a2 The second argument to pass to the invoked method
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   219
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   220
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   221
  template <typename MEM, typename OBJ, typename T1, typename T2>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   222
  static EventId Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   223
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   224
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   225
   * @see Schedule(const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   226
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   227
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   228
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   229
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   230
   * @tparam T3 @inferred Type of third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   231
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   232
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   233
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   234
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   235
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   236
   * @param [in] a3 The third argument to pass to the invoked method
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   237
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   238
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   239
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   240
            typename T1, typename T2, typename T3>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   241
  static EventId Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   242
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   243
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   244
   * @see Schedule(const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   245
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   246
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   247
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   248
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   249
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   250
   * @tparam T4 @inferred Type of fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   251
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   252
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   253
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   254
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   255
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   256
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   257
   * @param [in] a4 The fourth argument to pass to the invoked method
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   258
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   259
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   260
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   261
            typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   262
  static EventId Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   263
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   264
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   265
   * @see Schedule(const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   266
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   267
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   268
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   269
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   270
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   271
   * @tparam T4 @inferred Type of fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   272
   * @tparam T5 @inferred Type of fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   273
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   274
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   275
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   276
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   277
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   278
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   279
   * @param [in] a4 The fourth argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   280
   * @param [in] a5 The fifth argument to pass to the invoked method
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   281
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   282
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   283
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   284
            typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   285
  static EventId Schedule (Time const &delay, MEM mem_ptr, OBJ obj, 
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 682
diff changeset
   286
                           T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   287
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   288
   * @copybrief Schedule(const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   289
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   290
   * When the event expires (when it becomes due to be run), the
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   291
   * function will be invoked with any supplied arguments.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   292
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   293
   * @param [in] f The function to invoke
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   294
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   295
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   296
  static EventId Schedule (Time const &delay, void (*f)(void));
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   297
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   298
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   299
   * @see Schedule(const Time&,(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   300
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   301
   * @tparam T1 @inferred Actual type of the first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   302
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   303
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   304
   * @param [in] a1 The first argument to pass to the function to invoke.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   305
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   306
   */
947
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
   307
  template <typename U1, typename T1>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   308
  static EventId Schedule (Time const &delay, void (*f)(U1), T1 a1);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   309
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   310
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   311
   * @see Schedule(const Time&,(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   312
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   313
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   314
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   315
   * @tparam T2 @inferred Actual type of the second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   316
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   317
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   318
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   319
   * @param [in] a2 The second argument to pass to the function to invoke
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   320
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   321
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   322
  template <typename U1, typename U2,
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   323
            typename T1, typename T2>
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   324
  static EventId Schedule (Time const &delay, void (*f)(U1,U2), T1 a1, T2 a2);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   325
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   326
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   327
   * @see Schedule(const Time&,void(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   328
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   329
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   330
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   331
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   332
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   333
   * @tparam T3 @inferred Actual type of the third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   334
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   335
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   336
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   337
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   338
   * @param [in] a3 The third argument to pass to the function to invoke
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   339
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   340
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   341
  template <typename U1, typename U2, typename U3,
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   342
            typename T1, typename T2, typename T3>
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   343
  static EventId Schedule (Time const &delay, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   344
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   345
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   346
   * @see Schedule(const Time&,(*)(void))
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   347
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   348
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   349
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   350
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   351
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   352
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   353
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   354
   * @tparam T4 @inferred Actual type of the fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   355
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   356
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   357
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   358
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   359
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   360
   * @param [in] a4 The fourth argument to pass to the function to invoke
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   361
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   362
   */
947
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
   363
  template <typename U1, typename U2, typename U3, typename U4, 
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
   364
            typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   365
  static EventId Schedule (Time const &delay, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   366
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   367
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   368
   * @see Schedule(const Time&,void(*)(void))
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   369
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   370
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   371
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   372
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   373
   * @tparam U5 @inferred Formal type of the fifth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   374
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   375
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   376
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   377
   * @tparam T4 @inferred Actual type of the fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   378
   * @tparam T5 @inferred Actual type of the fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   379
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   380
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   381
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   382
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   383
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   384
   * @param [in] a4 The fourth argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   385
   * @param [in] a5 The fifth argument to pass to the function to invoke
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   386
   * @returns The id for the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   387
   */
947
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
   388
  template <typename U1, typename U2, typename U3, typename U4, typename U5,
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
   389
            typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   390
  static EventId Schedule (Time const &delay, void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
   391
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   392
  /** @} */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   393
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   394
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   395
   * @name Schedule events (in a different context) to run now or at a future time.
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   396
   *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   397
   * See @ref main-test-sync.cc for example usage.
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   398
   */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   399
  /** @{ */
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   400
  /**
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   401
   * Schedule an event with the given context.
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   402
   * A context of 0xffffffff means no context is specified.
7780
69c3c67b1b97 Finally enable a thread-safe ScheduleWithContext
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 7445
diff changeset
   403
   * This method is thread-safe: it can be called from any thread.
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   404
   *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   405
   * @see Schedule(const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   406
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   407
   * @tparam OBJ @inferred Class type of the object.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   408
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   409
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   410
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   411
   * @param [in] obj The object on which to invoke the member method
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   412
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   413
  template <typename MEM, typename OBJ>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   414
  static void ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   415
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   416
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   417
   * @see ScheduleWithContext(uint32_t,const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   418
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   419
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   420
   * @tparam T1 @inferred Type of first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   421
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   422
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   423
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   424
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   425
   * @param [in] a1 The first argument to pass to the invoked method
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   426
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   427
  template <typename MEM, typename OBJ, typename T1>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   428
  static void ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   429
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   430
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   431
   * @see ScheduleWithContext(uint32_t,const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   432
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   433
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   434
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   435
   * @tparam T2 @inferred Type of second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   436
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   437
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   438
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   439
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   440
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   441
   * @param [in] a2 The second argument to pass to the invoked method
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   442
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   443
  template <typename MEM, typename OBJ, typename T1, typename T2>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   444
  static void ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   445
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   446
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   447
   * @see ScheduleWithContext(uint32_t,const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   448
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   449
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   450
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   451
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   452
   * @tparam T3 @inferred Type of third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   453
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   454
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   455
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   456
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   457
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   458
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   459
   * @param [in] a3 The third argument to pass to the invoked method
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   460
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   461
  template <typename MEM, typename OBJ, 
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   462
            typename T1, typename T2, typename T3>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   463
  static void ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   464
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   465
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   466
   * @see ScheduleWithContext(uint32_t,const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   467
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   468
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   469
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   470
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   471
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   472
   * @tparam T4 @inferred Type of fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   473
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   474
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   475
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   476
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   477
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   478
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   479
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   480
   * @param [in] a4 The fourth argument to pass to the invoked method
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   481
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   482
  template <typename MEM, typename OBJ, 
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   483
            typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   484
  static void ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   485
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   486
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   487
   * @see ScheduleWithContext(uint32_t,const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   488
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   489
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   490
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   491
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   492
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   493
   * @tparam T4 @inferred Type of fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   494
   * @tparam T5 @inferred Type of fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   495
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   496
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   497
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   498
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   499
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   500
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   501
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   502
   * @param [in] a4 The fourth argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   503
   * @param [in] a5 The fifth argument to pass to the invoked method
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   504
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   505
  template <typename MEM, typename OBJ, 
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   506
            typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   507
  static void ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, 
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   508
                                   T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   509
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   510
   * @copybrief ScheduleWithContext(uint32_t,const Time&,MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   511
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   512
   * When the event expires (when it becomes due to be run), the
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   513
   * function will be invoked with any supplied arguments.
7780
69c3c67b1b97 Finally enable a thread-safe ScheduleWithContext
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 7445
diff changeset
   514
   *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   515
   * This method is thread-safe: it can be called from any thread.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   516
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   517
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   518
   * @param [in] f The function to invoke
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   519
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   520
  static void ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(void));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   522
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   523
   * @see ScheduleWithContext(uint32_t,const Time&,(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   524
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   525
   * @tparam T1 @inferred Actual type of the first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   526
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   527
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   528
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   529
   * @param [in] a1 The first argument to pass to the function to invoke
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   530
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   531
  template <typename U1,
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   532
            typename T1>
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   533
  static void ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1), T1 a1);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   534
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   535
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   536
   * @see ScheduleWithContext(uint32_t,const Time&,(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   537
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   538
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   539
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   540
   * @tparam T2 @inferred Actual type of the second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   541
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   542
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   543
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   544
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   545
   * @param [in] a2 The second argument to pass to the function to invoke
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   546
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   547
  template <typename U1, typename U2,
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   548
            typename T1, typename T2>
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   549
  static void ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2), T1 a1, T2 a2);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   550
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   551
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   552
   * @see ScheduleWithContext(uint32_t,const Time&,(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   553
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   554
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   555
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   556
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   557
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   558
   * @tparam T3 @inferred Actual type of the third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   559
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   560
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   561
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   562
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   563
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   564
   * @param [in] a3 The third argument to pass to the function to invoke
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   565
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   566
  template <typename U1, typename U2, typename U3,
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   567
            typename T1, typename T2, typename T3>
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   568
  static void ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   569
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   570
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   571
   * @see ScheduleWithContext(uint32_t,const Time&,(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   572
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   573
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   574
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   575
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   576
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   577
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   578
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   579
   * @tparam T4 @inferred Actual type of the fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   580
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   581
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   582
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   583
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   584
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   585
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   586
   * @param [in] a4 The fourth argument to pass to the function to invoke
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   587
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   588
  template <typename U1, typename U2, typename U3, typename U4, 
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   589
            typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   590
  static void ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   591
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   592
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   593
   * @see ScheduleWithContext(uint32_t,const Time&,(*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   594
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   595
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   596
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   597
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   598
   * @tparam U5 @inferred Formal type of the fifth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   599
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   600
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   601
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   602
   * @tparam T4 @inferred Actual type of the fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   603
   * @tparam T5 @inferred Actual type of the fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   604
   * @param [in] context User-specified context parameter
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   605
   * @param [in] delay The relative expiration time of the event.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   606
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   607
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   608
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   609
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   610
   * @param [in] a4 The fourth argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   611
   * @param [in] a5 The fifth argument to pass to the function to invoke
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   612
   */
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   613
  template <typename U1, typename U2, typename U3, typename U4, typename U5,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   614
            typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   615
  static void ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   616
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   617
  /** @} */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   618
  
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   619
  /**
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
   620
   * @name Schedule events (in the same context) to run now.
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   621
   */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   622
  /** @{ */
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
   623
  /**
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   624
   * Schedule an event to expire Now. All events scheduled to
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   625
   * to expire "Now" are scheduled FIFO, after all normal events
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   626
   * have expired. 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   627
   *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   628
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   629
   * @tparam OBJ @inferred Class type of the object.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   630
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   631
   * @param [in] obj The object on which to invoke the member method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   632
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   633
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   634
  template <typename MEM, typename OBJ>
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   635
  static EventId ScheduleNow (MEM mem_ptr, OBJ obj);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   636
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   637
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   638
   * @see ScheduleNow(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   639
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   640
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   641
   * @tparam T1 @inferred Type of first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   642
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   643
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   644
   * @param [in] a1 The first argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   645
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   646
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   647
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   648
            typename T1>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   649
  static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   650
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   651
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   652
   * @see ScheduleNow(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   653
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   654
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   655
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   656
   * @tparam T2 @inferred Type of second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   657
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   658
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   659
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   660
   * @param [in] a2 The second argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   661
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   662
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   663
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   664
            typename T1, typename T2>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   665
  static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   666
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   667
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   668
   * @see ScheduleNow(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   669
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   670
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   671
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   672
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   673
   * @tparam T3 @inferred Type of third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   674
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   675
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   676
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   677
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   678
   * @param [in] a3 The third argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   679
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   680
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   681
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   682
            typename T1, typename T2, typename T3>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   683
  static EventId ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   684
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   685
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   686
   * @see ScheduleNow(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   687
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   688
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   689
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   690
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   691
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   692
   * @tparam T4 @inferred Type of fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   693
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   694
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   695
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   696
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   697
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   698
   * @param [in] a4 The fourth argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   699
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   700
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   701
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   702
            typename T1, typename T2, typename T3, typename T4>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   703
  static EventId ScheduleNow (MEM mem_ptr, OBJ obj, 
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   704
                              T1 a1, T2 a2, T3 a3, T4 a4);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   705
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   706
   * @see ScheduleNow(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   707
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   708
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   709
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   710
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   711
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   712
   * @tparam T4 @inferred Type of fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   713
   * @tparam T5 @inferred Type of fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   714
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   715
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   716
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   717
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   718
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   719
   * @param [in] a4 The fourth argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   720
   * @param [in] a5 The fifth argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   721
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   722
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   723
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   724
            typename T1, typename T2, typename T3, typename T4, typename T5>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   725
  static EventId ScheduleNow (MEM mem_ptr, OBJ obj, 
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   726
                              T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   727
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   728
   * @copybrief ScheduleNow(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   729
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   730
   * When the event expires (when it becomes due to be run), the
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   731
   * function will be invoked with any supplied arguments.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   732
   * @param [in] f The function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   733
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   734
   */
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   735
  static EventId ScheduleNow (void (*f)(void));
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   736
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   737
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   738
   * @see ScheduleNow(*)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   739
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   740
   * @tparam T1 @inferred Actual type of the first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   741
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   742
   * @param [in] a1 The first argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   743
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   744
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   745
  template <typename U1,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   746
            typename T1>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   747
  static EventId ScheduleNow (void (*f)(U1), T1 a1);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   748
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   749
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   750
   * @see ScheduleNow(*)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   751
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   752
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   753
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   754
   * @tparam T2 @inferred Actual type of the second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   755
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   756
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   757
   * @param [in] a2 The second argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   758
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   759
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   760
  template <typename U1, typename U2,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   761
            typename T1, typename T2>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   762
  static EventId ScheduleNow (void (*f)(U1,U2), T1 a1, T2 a2);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   763
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   764
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   765
   * @see ScheduleNow(*)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   766
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   767
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   768
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   769
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   770
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   771
   * @tparam T3 @inferred Actual type of the third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   772
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   773
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   774
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   775
   * @param [in] a3 The third argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   776
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   777
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   778
  template <typename U1, typename U2, typename U3,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   779
            typename T1, typename T2, typename T3>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   780
  static EventId ScheduleNow (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   781
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   782
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   783
   * @see ScheduleNow(*)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   784
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   785
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   786
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   787
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   788
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   789
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   790
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   791
   * @tparam T4 @inferred Actual type of the fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   792
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   793
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   794
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   795
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   796
   * @param [in] a4 The fourth argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   797
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   798
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   799
  template <typename U1, typename U2, typename U3, typename U4,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   800
            typename T1, typename T2, typename T3, typename T4>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   801
  static EventId ScheduleNow (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   802
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   803
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   804
   * @see ScheduleNow(*)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   805
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   806
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   807
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   808
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   809
   * @tparam U5 @inferred Formal type of the fifth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   810
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   811
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   812
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   813
   * @tparam T4 @inferred Actual type of the fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   814
   * @tparam T5 @inferred Actual type of the fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   815
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   816
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   817
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   818
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   819
   * @param [in] a4 The fourth argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   820
   * @param [in] a5 The fifth argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   821
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   822
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   823
  template <typename U1, typename U2, typename U3, typename U4, typename U5,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   824
            typename T1, typename T2, typename T3, typename T4, typename T5>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   825
  static EventId ScheduleNow (void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   826
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   827
  /** @} */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   828
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   829
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   830
   * @name Schedule events to run at the end of the simulation, when Simulator:Destroy() is called.
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   831
   */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   832
  /** @{ */
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   833
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   834
   * Schedule an event to expire when Simulator::Destroy is called.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   835
   * All events scheduled to expire at "Destroy" time are scheduled FIFO, 
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   836
   * after all normal events have expired and only when 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   837
   * Simulator::Destroy is invoked.
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   838
   *
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   839
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   840
   * @tparam OBJ @inferred Class type of the object.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   841
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   842
   * @param [in] obj The object on which to invoke the member method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   843
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   844
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   845
  template <typename MEM, typename OBJ>
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   846
  static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   847
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   848
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   849
   * @see ScheduleDestroy(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   850
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   851
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   852
   * @tparam T1 @inferred Type of first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   853
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   854
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   855
   * @param [in] a1 The first argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   856
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   857
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   858
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   859
            typename T1>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   860
  static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   861
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   862
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   863
   * @see ScheduleDestroy(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   864
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   865
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   866
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   867
   * @tparam T2 @inferred Type of second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   868
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   869
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   870
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   871
   * @param [in] a2 The second argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   872
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   873
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   874
  template <typename MEM, typename OBJ,
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   875
            typename T1, typename T2>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   876
  static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   877
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   878
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   879
   * @see ScheduleDestroy(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   880
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   881
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   882
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   883
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   884
   * @tparam T3 @inferred Type of third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   885
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   886
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   887
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   888
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   889
   * @param [in] a3 The third argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   890
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   891
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   892
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   893
            typename T1, typename T2, typename T3>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   894
  static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   895
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   896
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   897
   * @see ScheduleDestroy(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   898
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   899
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   900
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   901
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   902
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   903
   * @tparam T4 @inferred Type of fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   904
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   905
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   906
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   907
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   908
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   909
   * @param [in] a4 The fourth argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   910
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   911
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   912
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   913
            typename T1, typename T2, typename T3, typename T4>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   914
  static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, 
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   915
                                  T1 a1, T2 a2, T3 a3, T4 a4);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   916
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   917
   * @see ScheduleDestroy(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   918
   * @tparam MEM @inferred Class method function signature type.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   919
   * @tparam OBJ @inferred Class type of the object.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   920
   * @tparam T1 @inferred Type of first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   921
   * @tparam T2 @inferred Type of second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   922
   * @tparam T3 @inferred Type of third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   923
   * @tparam T4 @inferred Type of fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   924
   * @tparam T5 @inferred Type of fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   925
   * @param [in] mem_ptr Member method pointer to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   926
   * @param [in] obj The object on which to invoke the member method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   927
   * @param [in] a1 The first argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   928
   * @param [in] a2 The second argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   929
   * @param [in] a3 The third argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   930
   * @param [in] a4 The fourth argument to pass to the invoked method
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   931
   * @param [in] a5 The fifth argument to pass to the invoked method
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   932
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   933
   */
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   934
  template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   935
            typename T1, typename T2, typename T3, typename T4, typename T5>
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   936
  static EventId ScheduleDestroy (MEM mem_ptr, OBJ obj, 
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
   937
                                  T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   938
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   939
   * @copybrief ScheduleDestroy(MEM,OBJ)
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   940
   * When Simulator::Destroy() is called, the
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   941
   * function will be invoked with any supplied arguments.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   942
   * @param [in] f The function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   943
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   944
   */
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   945
  static EventId ScheduleDestroy (void (*f)(void));
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   946
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   947
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   948
   * @see ScheduleDestory((*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   949
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   950
   * @tparam T1 @inferred Actual type of the first argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   951
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   952
   * @param [in] a1 The first argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   953
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   954
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   955
  template <typename U1,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   956
            typename T1>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   957
  static EventId ScheduleDestroy (void (*f)(U1), T1 a1);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   958
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   959
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   960
   * @see ScheduleDestory((*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   961
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   962
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   963
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   964
   * @tparam T2 @inferred Actual type of the second argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   965
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   966
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   967
   * @param [in] a2 The second argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   968
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   969
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   970
  template <typename U1, typename U2,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   971
            typename T1, typename T2>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   972
  static EventId ScheduleDestroy (void (*f)(U1,U2), T1 a1, T2 a2);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   973
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   974
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   975
   * @see ScheduleDestory((*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   976
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   977
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   978
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   979
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   980
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   981
   * @tparam T3 @inferred Actual type of the third argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   982
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   983
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   984
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
   985
   * @param [in] a3 The third argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
   986
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   987
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   988
  template <typename U1, typename U2, typename U3,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
   989
            typename T1, typename T2, typename T3>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
   990
  static EventId ScheduleDestroy (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
   991
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
   992
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   993
   * @see ScheduleDestory((*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   994
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   995
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   996
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   997
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   998
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
   999
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1000
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1001
   * @tparam T4 @inferred Actual type of the fourth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1002
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1003
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1004
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1005
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1006
   * @param [in] a4 The fourth argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1007
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
  1008
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1009
  template <typename U1, typename U2, typename U3, typename U4,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1010
            typename T1, typename T2, typename T3, typename T4>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1011
  static EventId ScheduleDestroy (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1012
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
  1013
  /**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1014
   * @see ScheduleDestory((*)())
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1015
   * @tparam U1 @inferred Formal type of the first argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1016
   * @tparam U2 @inferred Formal type of the second argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1017
   * @tparam U3 @inferred Formal type of the third argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1018
   * @tparam U4 @inferred Formal type of the fourth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1019
   * @tparam U5 @inferred Formal type of the fifth argument to the function.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1020
   * @tparam T1 @inferred Actual type of the first argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1021
   * @tparam T2 @inferred Actual type of the second argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1022
   * @tparam T3 @inferred Actual type of the third argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1023
   * @tparam T4 @inferred Actual type of the fourth argument.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1024
   * @tparam T5 @inferred Actual type of the fifth argument.
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1025
   * @param [in] f The function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1026
   * @param [in] a1 The first argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1027
   * @param [in] a2 The second argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1028
   * @param [in] a3 The third argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1029
   * @param [in] a4 The fourth argument to pass to the function to invoke
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1030
   * @param [in] a5 The fifth argument to pass to the function to invoke
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1031
   * @return The EventId of the scheduled event.
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
  1032
   */
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1033
  template <typename U1, typename U2, typename U3, typename U4, typename U5,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1034
            typename T1, typename T2, typename T3, typename T4, typename T5>
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1035
  static EventId ScheduleDestroy (void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1036
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1037
  /** @} */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1038
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1039
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1040
   * Remove an event from the event list. 
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1041
   * 
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1042
   * This method has the same visible effect as the 
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1043
   * ns3::EventId::Cancel method
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1044
   * but its algorithmic complexity is much higher: it has often 
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1045
   * O(log(n)) complexity, sometimes O(n), sometimes worse.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1046
   * Note that it is not possible to remove events which were scheduled
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1047
   * for the "destroy" time. Doing so will result in a program error (crash).
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1048
   *
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1049
   * @param [in] id The event to remove from the list of scheduled events.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1050
   */
1011
7e5be9b118c9 be more consistant in the handling of references
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1010
diff changeset
  1051
  static void Remove (const EventId &id);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1052
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1053
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1054
   * Set the cancel bit on this event: the event's associated function
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1055
   * will not be invoked when it expires.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1056
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1057
   * This method has the same visible effect as the 
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1058
   * ns3::Simulator::Remove method but its algorithmic complexity is 
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1059
   * much lower: it has O(1) complexity.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1060
   * This method has the exact same semantics as ns3::EventId::Cancel.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1061
   * Note that it is not possible to cancel events which were scheduled
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1062
   * for the "destroy" time. Doing so will result in a program error (crash).
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1063
   * 
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1064
   * @param [in] id the event to cancel
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1065
   */
1011
7e5be9b118c9 be more consistant in the handling of references
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1010
diff changeset
  1066
  static void Cancel (const EventId &id);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1067
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1068
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1069
   * Check if an event has already run or been cancelled.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1070
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1071
   * This method has O(1) complexity.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1072
   * Note that it is not possible to test for the expiration of
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1073
   * events which were scheduled for the "destroy" time. Doing so
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1074
   * will result in a program error (crash).
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1075
   * An event is said to "expire" when it starts being scheduled
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1076
   * which means that if the code executed by the event calls
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1077
   * this function, it will get true.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1078
   *
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1079
   * @param [in] id The event to test for expiration.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1080
   * @returns @c true if the event has expired, false otherwise.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1081
   */
1011
7e5be9b118c9 be more consistant in the handling of references
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1010
diff changeset
  1082
  static bool IsExpired (const EventId &id);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1083
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1084
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1085
   * Return the current simulation virtual time.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1086
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1087
   * @returns The current virtual time.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1088
   */
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 146
diff changeset
  1089
  static Time Now (void);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1090
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1091
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1092
   * Get the remaining time until this event will execute.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1093
   *
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1094
   * @param [in] id The event id to analyse.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1095
   * @return The delay left until the input event id expires.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1096
   *          if the event is not running, this method returns
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1097
   *          zero.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1098
   */
1690
16b198d63c1e add Simulator::GetDelayLeft
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1295
diff changeset
  1099
  static Time GetDelayLeft (const EventId &id);
1863
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
  1100
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1101
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1102
   * Get the maximum representable simulation time.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1103
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1104
   * @return The maximum simulation time at which an event 
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1105
   *          can be scheduled.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1106
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1107
   * The returned value will always be bigger than or equal to Simulator::Now.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1108
   */
1863
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
  1109
  static Time GetMaximumSimulationTime (void);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1110
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1111
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1112
   * Get the current simulation context.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1113
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1114
   * @return The current simulation context
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1115
   */
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1116
  static uint32_t GetContext (void);
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1117
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1118
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1119
   * Schedule a future event execution (in the same context).
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1120
   *
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1121
   * @param [in] delay Delay until the event expires.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1122
   * @param [in] event The event to schedule.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1123
   * @returns A unique identifier for the newly-scheduled event.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1124
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1125
  static EventId Schedule (Time const &delay, const Ptr<EventImpl> &event);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1126
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1127
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1128
   * Schedule a future event execution (in a different context).
7780
69c3c67b1b97 Finally enable a thread-safe ScheduleWithContext
Alina Quereilhac <alina.quereilhac@inria.fr>
parents: 7445
diff changeset
  1129
   * This method is thread-safe: it can be called from any thread.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1130
   *
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1131
   * @param [in] delay Delay until the event expires.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1132
   * @param [in] context Event context.
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1133
   * @param [in] event The event to schedule.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1134
   * @returns A unique identifier for the newly-scheduled event.
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1135
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1136
  static void ScheduleWithContext (uint32_t context, const Time &delay, EventImpl *event);
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1137
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1138
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1139
   * Schedule an event to run at the end of the simulation, after
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1140
   * the Stop() time or condition has been reached.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1141
   *
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1142
   * @param [in] event The event to schedule.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1143
   * @returns A unique identifier for the newly-scheduled event.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1144
   */
3369
30750f23d51a export new methods for language bindings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3188
diff changeset
  1145
  static EventId ScheduleDestroy (const Ptr<EventImpl> &event);
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
  1146
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1147
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1148
   * Schedule an event to run at the current virtual time.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1149
   *
11538
397bd6465dd9 [Doxygen] Label arguments as in,out. Sentence capitalization.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11531
diff changeset
  1150
   * @param [in] event The event to schedule.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1151
   * @returns A unique identifier for the newly-scheduled event.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1152
   */
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1153
  static EventId ScheduleNow (const Ptr<EventImpl> &event);
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1154
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1155
  /**
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1156
   * Get the system id of this simulator.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1157
   *
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1158
   * The system id is the identifier for this simulator instance
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1159
   * in a distributed simulation.  For MPI this is the MPI rank.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1160
   * @return The system id for this simulator.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1161
   */
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1162
  static uint32_t GetSystemId (void);
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1163
  
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1164
private:
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1165
  /** Default constructor. */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1166
  Simulator ();
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1167
  /** Destructor. */
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1168
  ~Simulator ();
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1169
3369
30750f23d51a export new methods for language bindings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3188
diff changeset
  1170
  /**
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1171
   * Implementation of the various Schedule methods.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1172
   * @param [in] delay Delay until the event should execute.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1173
   * @param [in] event The event to execute.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1174
   * @return The EventId.
3369
30750f23d51a export new methods for language bindings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3188
diff changeset
  1175
   */
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1176
  static EventId DoSchedule (Time const &delay, EventImpl *event);
6113
0ce37bf4f1c1 Merge distributed simulation code
Josh Pelkey <jpelkey@gatech.edu>
parents: 5920
diff changeset
  1177
  /**
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1178
   * Implementation of the various ScheduleNow methods.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1179
   * @param [in] event The event to execute.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1180
   * @return The EventId.
6113
0ce37bf4f1c1 Merge distributed simulation code
Josh Pelkey <jpelkey@gatech.edu>
parents: 5920
diff changeset
  1181
   */
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1182
  static EventId DoScheduleNow (EventImpl *event);
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1183
  /**
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1184
   * Implementation of the various ScheduleDestroy methods.
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1185
   * @param [in] event The event to execute.
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1186
   * @return The EventId.
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1187
   */
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1188
  static EventId DoScheduleDestroy (EventImpl *event);
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1189
};
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1190
679
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1191
/**
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1192
 * @ingroup simulator
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1193
 * @brief create an ns3::Time instance which contains the
679
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1194
 *        current simulation time.
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1195
 *
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1196
 * This is really a shortcut for the ns3::Simulator::Now method.
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1197
 * It is typically used as shown below to schedule an event
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1198
 * which expires at the absolute time "2 seconds":
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1199
 * @code
11091
4bbd7b9a2889 Standardize EventId arguments as id.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11022
diff changeset
  1200
 *   Simulator::Schedule (Seconds (2.0) - Now (), &my_function);
11531
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1201
 * @endcode
5d6b3f94ebf3 [Doxygen] Remaining in core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11530
diff changeset
  1202
 * @return The current simulation time.
679
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1203
 */
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1204
Time Now (void);
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 536
diff changeset
  1205
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1206
} // namespace ns3
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1207
11131
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
  1208
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
  1209
/********************************************************************
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
  1210
 *  Implementation of the templates declared above.
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
  1211
 ********************************************************************/
6a448ac28669 [Doxygen] Various in src/core
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11091
diff changeset
  1212
75
0f3f4b0a158b reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 71
diff changeset
  1213
namespace ns3 {
0f3f4b0a158b reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 71
diff changeset
  1214
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1215
template <typename MEM, typename OBJ>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1216
EventId Simulator::Schedule (Time const &delay, MEM mem_ptr, OBJ obj) 
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1217
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1218
  return DoSchedule (delay, MakeEvent (mem_ptr, obj));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1219
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1220
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1221
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1222
template <typename MEM, typename OBJ,
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1223
          typename T1>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1224
EventId Simulator::Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1) 
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1225
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1226
  return DoSchedule (delay, MakeEvent (mem_ptr, obj, a1));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1227
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1228
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1229
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1230
          typename T1, typename T2>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1231
EventId Simulator::Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2)
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1232
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1233
  return DoSchedule (delay, MakeEvent (mem_ptr, obj, a1, a2));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1234
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1235
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1236
template <typename MEM, typename OBJ,
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1237
          typename T1, typename T2, typename T3>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1238
EventId Simulator::Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3) 
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1239
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1240
  return DoSchedule (delay, MakeEvent (mem_ptr, obj, a1, a2, a3));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1241
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1242
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1243
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1244
          typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1245
EventId Simulator::Schedule (Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4) 
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1246
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1247
  return DoSchedule (delay, MakeEvent (mem_ptr, obj, a1, a2, a3, a4));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1248
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1249
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1250
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1251
          typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1252
EventId Simulator::Schedule (Time const &delay, MEM mem_ptr, OBJ obj, 
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1253
                             T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) 
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1254
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1255
  return DoSchedule (delay, MakeEvent (mem_ptr, obj, a1, a2, a3, a4, a5));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1256
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1257
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1258
template <typename U1,
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1259
          typename T1>
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1260
EventId Simulator::Schedule (Time const &delay, void (*f)(U1), T1 a1)
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1261
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1262
  return DoSchedule (delay, MakeEvent (f, a1));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1263
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1264
947
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1265
template <typename U1, typename U2, 
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1266
          typename T1, typename T2>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1267
EventId Simulator::Schedule (Time const &delay, void (*f)(U1,U2), T1 a1, T2 a2)
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1268
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1269
  return DoSchedule (delay, MakeEvent (f, a1, a2));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1270
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1271
947
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1272
template <typename U1, typename U2, typename U3,
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1273
          typename T1, typename T2, typename T3>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1274
EventId Simulator::Schedule (Time const &delay, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3)
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1275
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1276
  return DoSchedule (delay, MakeEvent (f, a1, a2, a3));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1277
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1278
947
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1279
template <typename U1, typename U2, typename U3, typename U4,
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1280
          typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1281
EventId Simulator::Schedule (Time const &delay, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4)
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1282
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1283
  return DoSchedule (delay, MakeEvent (f, a1, a2, a3, a4));
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1284
}
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1285
947
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1286
template <typename U1, typename U2, typename U3, typename U4, typename U5,
755e3df63fc2 fix testcase
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 946
diff changeset
  1287
          typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1288
EventId Simulator::Schedule (Time const &delay, void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
142
dcf83cc9d52a move event generation to MakeEvent methods
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 131
diff changeset
  1289
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1290
  return DoSchedule (delay, MakeEvent (f, a1, a2, a3, a4, a5));
75
0f3f4b0a158b reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 71
diff changeset
  1291
}
0f3f4b0a158b reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 71
diff changeset
  1292
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1293
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1294
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1295
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1296
template <typename MEM, typename OBJ>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1297
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1298
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1299
  ScheduleWithContext (context, delay, MakeEvent (mem_ptr, obj));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1300
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1301
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1302
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1303
template <typename MEM, typename OBJ,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1304
          typename T1>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1305
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1306
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1307
  return ScheduleWithContext (context, delay, MakeEvent (mem_ptr, obj, a1));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1308
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1309
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1310
template <typename MEM, typename OBJ,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1311
          typename T1, typename T2>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1312
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1313
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1314
  return ScheduleWithContext (context, delay, MakeEvent (mem_ptr, obj, a1, a2));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1315
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1316
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1317
template <typename MEM, typename OBJ,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1318
          typename T1, typename T2, typename T3>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1319
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1320
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1321
  return ScheduleWithContext (context, delay, MakeEvent (mem_ptr, obj, a1, a2, a3));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1322
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1323
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1324
template <typename MEM, typename OBJ,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1325
          typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1326
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1327
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1328
  return ScheduleWithContext (context, delay, MakeEvent (mem_ptr, obj, a1, a2, a3, a4));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1329
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1330
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1331
template <typename MEM, typename OBJ,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1332
          typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1333
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj,
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1334
                                     T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1335
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1336
  return ScheduleWithContext (context, delay, MakeEvent (mem_ptr, obj, a1, a2, a3, a4, a5));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1337
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1338
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1339
template <typename U1,
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1340
          typename T1>
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1341
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1), T1 a1)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1342
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1343
  return ScheduleWithContext (context, delay, MakeEvent (f, a1));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1344
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1345
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1346
template <typename U1, typename U2,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1347
          typename T1, typename T2>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1348
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2), T1 a1, T2 a2)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1349
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1350
  return ScheduleWithContext (context, delay, MakeEvent (f, a1, a2));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1351
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1352
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1353
template <typename U1, typename U2, typename U3,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1354
          typename T1, typename T2, typename T3>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1355
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1356
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1357
  return ScheduleWithContext (context, delay, MakeEvent (f, a1, a2, a3));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1358
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1359
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1360
template <typename U1, typename U2, typename U3, typename U4,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1361
          typename T1, typename T2, typename T3, typename T4>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1362
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1363
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1364
  return ScheduleWithContext (context, delay, MakeEvent (f, a1, a2, a3, a4));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1365
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1366
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1367
template <typename U1, typename U2, typename U3, typename U4, typename U5,
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1368
          typename T1, typename T2, typename T3, typename T4, typename T5>
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1369
void Simulator::ScheduleWithContext (uint32_t context, Time const &delay, void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1370
{
11530
65ddfcaae79a Clarify that Time arguments to Schedule are all delays wrt Now.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents: 11414
diff changeset
  1371
  return ScheduleWithContext (context, delay, MakeEvent (f, a1, a2, a3, a4, a5));
5521
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1372
}
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1373
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1374
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1375
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1376
37c6c83d4252 Introduce Simulator::ScheduleWithContext* and Simulator::GetContext
Guillaume Seguin <guillaume@segu.in>
parents: 5507
diff changeset
  1377
template <typename MEM, typename OBJ>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1378
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1379
Simulator::ScheduleNow (MEM mem_ptr, OBJ obj) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1380
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1381
  return DoScheduleNow (MakeEvent (mem_ptr, obj));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1382
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1383
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1384
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1385
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1386
          typename T1>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1387
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1388
Simulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1389
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1390
  return DoScheduleNow (MakeEvent (mem_ptr, obj, a1));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1391
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1392
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1393
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1394
          typename T1, typename T2>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1395
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1396
Simulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1397
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1398
  return DoScheduleNow (MakeEvent (mem_ptr, obj, a1, a2));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1399
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1400
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1401
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1402
          typename T1, typename T2, typename T3>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1403
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1404
Simulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1405
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1406
  return DoScheduleNow (MakeEvent (mem_ptr, obj, a1, a2, a3));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1407
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1408
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1409
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1410
          typename T1, typename T2, typename T3, typename T4>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1411
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1412
Simulator::ScheduleNow (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1413
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1414
  return DoScheduleNow (MakeEvent (mem_ptr, obj, a1, a2, a3, a4));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1415
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1416
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1417
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1418
          typename T1, typename T2, typename T3, typename T4, typename T5>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1419
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1420
Simulator::ScheduleNow (MEM mem_ptr, OBJ obj, 
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 682
diff changeset
  1421
                        T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1422
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1423
  return DoScheduleNow (MakeEvent (mem_ptr, obj, a1, a2, a3, a4, a5));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1424
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1425
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1426
template <typename U1,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1427
          typename T1>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1428
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1429
Simulator::ScheduleNow (void (*f)(U1), T1 a1)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1430
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1431
  return DoScheduleNow (MakeEvent (f, a1));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1432
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1433
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1434
template <typename U1, typename U2,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1435
          typename T1, typename T2>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1436
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1437
Simulator::ScheduleNow (void (*f)(U1,U2), T1 a1, T2 a2)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1438
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1439
  return DoScheduleNow (MakeEvent (f, a1, a2));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1440
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1441
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1442
template <typename U1, typename U2, typename U3,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1443
          typename T1, typename T2, typename T3>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1444
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1445
Simulator::ScheduleNow (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1446
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1447
  return DoScheduleNow (MakeEvent (f, a1, a2, a3));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1448
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1449
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1450
template <typename U1, typename U2, typename U3, typename U4,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1451
          typename T1, typename T2, typename T3, typename T4>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1452
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1453
Simulator::ScheduleNow (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1454
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1455
  return DoScheduleNow (MakeEvent (f, a1, a2, a3, a4));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1456
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1457
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1458
template <typename U1, typename U2, typename U3, typename U4, typename U5,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1459
          typename T1, typename T2, typename T3, typename T4, typename T5>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1460
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1461
Simulator::ScheduleNow (void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1462
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1463
  return DoScheduleNow (MakeEvent (f, a1, a2, a3, a4, a5));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1464
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1465
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1466
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1467
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1468
template <typename MEM, typename OBJ>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1469
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1470
Simulator::ScheduleDestroy (MEM mem_ptr, OBJ obj) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1471
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1472
  return DoScheduleDestroy (MakeEvent (mem_ptr, obj));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1473
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1474
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1475
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1476
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1477
          typename T1>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1478
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1479
Simulator::ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1480
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1481
  return DoScheduleDestroy (MakeEvent (mem_ptr, obj, a1));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1482
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1483
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1484
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1485
          typename T1, typename T2>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1486
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1487
Simulator::ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1488
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1489
  return DoScheduleDestroy (MakeEvent (mem_ptr, obj, a1, a2));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1490
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1491
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1492
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1493
          typename T1, typename T2, typename T3>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1494
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1495
Simulator::ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1496
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1497
  return DoScheduleDestroy (MakeEvent (mem_ptr, obj, a1, a2, a3));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1498
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1499
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1500
template <typename MEM, typename OBJ,
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1501
          typename T1, typename T2, typename T3, typename T4>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1502
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1503
Simulator::ScheduleDestroy (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1504
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1505
  return DoScheduleDestroy (MakeEvent (mem_ptr, obj, a1, a2, a3, a4));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1506
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1507
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1508
template <typename MEM, typename OBJ, 
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1509
          typename T1, typename T2, typename T3, typename T4, typename T5>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1510
EventId
1295
6d84582d9999 fix first part of errors introduced by new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1011
diff changeset
  1511
Simulator::ScheduleDestroy (MEM mem_ptr, OBJ obj, 
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 682
diff changeset
  1512
                            T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) 
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1513
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1514
  return DoScheduleDestroy (MakeEvent (mem_ptr, obj, a1, a2, a3, a4, a5));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1515
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1516
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1517
template <typename U1,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1518
          typename T1>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1519
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1520
Simulator::ScheduleDestroy (void (*f)(U1), T1 a1)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1521
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1522
  return DoScheduleDestroy (MakeEvent (f, a1));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1523
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1524
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1525
template <typename U1, typename U2,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1526
          typename T1, typename T2>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1527
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1528
Simulator::ScheduleDestroy (void (*f)(U1,U2), T1 a1, T2 a2)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1529
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1530
  return DoScheduleDestroy (MakeEvent (f, a1, a2));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1531
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1532
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1533
template <typename U1, typename U2, typename U3,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1534
          typename T1, typename T2, typename T3>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1535
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1536
Simulator::ScheduleDestroy (void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1537
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1538
  return DoScheduleDestroy (MakeEvent (f, a1, a2, a3));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1539
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1540
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1541
template <typename U1, typename U2, typename U3, typename U4,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1542
          typename T1, typename T2, typename T3, typename T4>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1543
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1544
Simulator::ScheduleDestroy (void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1545
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1546
  return DoScheduleDestroy (MakeEvent (f, a1, a2, a3, a4));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1547
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1548
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1549
template <typename U1, typename U2, typename U3, typename U4, typename U5,
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 947
diff changeset
  1550
          typename T1, typename T2, typename T3, typename T4, typename T5>
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
  1551
EventId
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 7149
diff changeset
  1552
Simulator::ScheduleDestroy (void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1553
{
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1554
  return DoScheduleDestroy (MakeEvent (f, a1, a2, a3, a4, a5));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1555
}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
  1556
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3804
diff changeset
  1557
} // namespace ns3
75
0f3f4b0a158b reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 71
diff changeset
  1558
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
  1559
#endif /* SIMULATOR_H */