src/simulator/simulator.cc
author mathieu.lacage@sophia.inria.fr
Wed, 10 Dec 2008 17:01:06 -0800
changeset 4009 76cb8ed8fe98
parent 3920 736b807ae8c0
child 4054 d1df606b20f8
permissions -rw-r--r--
fix bug 230, rescan bindings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
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,2006 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
#include "simulator.h"
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
    22
#include "simulator-impl.h"
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    23
#include "default-simulator-impl.h"
3801
dc1f5e534e56 slight reorganization and naming change for added realtime methods
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
    24
#include "realtime-simulator-impl.h"
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    25
#include "scheduler.h"
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
    26
#include "map-scheduler.h"
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
    27
#include "event-impl.h"
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
1008
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
    29
#include "ns3/ptr.h"
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    30
#include "ns3/string.h"
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    31
#include "ns3/object-factory.h"
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    32
#include "ns3/global-value.h"
439
fed13fb45eef Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 336
diff changeset
    33
#include "ns3/assert.h"
2979
3d39dd617b8d add time logging support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
    34
#include "ns3/log.h"
439
fed13fb45eef Incorporated defaults and command-line arguments
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 336
diff changeset
    35
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
#include <math.h>
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
#include <fstream>
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
#include <list>
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
#include <vector>
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
#include <iostream>
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: 3188
diff changeset
    42
NS_LOG_COMPONENT_DEFINE ("Simulator");
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    43
16
99e833adbb46 change yans namespace to ns3
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 14
diff changeset
    44
namespace ns3 {
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    46
GlobalValue g_simTypeImpl = GlobalValue ("SimulatorImplementationType", 
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    47
  "The object class to use as the simulator implementation",
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    48
  StringValue ("ns3::DefaultSimulatorImpl"),
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    49
  MakeStringChecker ());
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    50
2981
982a6f364d2c fix optimized build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2979
diff changeset
    51
#ifdef NS3_LOG_ENABLE
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    52
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    53
//
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    54
// Note:  Calls that take TimePrinter as a parameter are defined as nothing
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    55
// in the logging module if NS3_LOG_ENABLE is not defined.
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    56
// 
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    57
2979
3d39dd617b8d add time logging support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
    58
static void
3d39dd617b8d add time logging support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
    59
TimePrinter (std::ostream &os)
3d39dd617b8d add time logging support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
    60
{
3920
736b807ae8c0 bug 257: change the default log output of time to seconds, not the simulator's resolution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3816
diff changeset
    61
  os << Simulator::Now ().GetSeconds () << "s";
2979
3d39dd617b8d add time logging support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
    62
}
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    63
2981
982a6f364d2c fix optimized build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2979
diff changeset
    64
#endif /* NS3_LOG_ENABLE */
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    65
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    66
static Ptr<SimulatorImpl> *PeekImpl (void)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    67
{
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    68
  static Ptr<SimulatorImpl> impl = 0;
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    69
  return &impl;
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    70
}
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    71
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    72
static SimulatorImpl * GetImpl (void)
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    73
{
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    74
  Ptr<SimulatorImpl> &impl = *PeekImpl ();
3503
b8cccd54da26 bug 269: revert parts of 9e763021e045 and add comments to avoid getting these again.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3489
diff changeset
    75
  /* Please, don't include any calls to logging macros in this function
b8cccd54da26 bug 269: revert parts of 9e763021e045 and add comments to avoid getting these again.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3489
diff changeset
    76
   * or pay the price, that is, stack explosions.
b8cccd54da26 bug 269: revert parts of 9e763021e045 and add comments to avoid getting these again.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3489
diff changeset
    77
   */
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    78
  if (impl == 0) 
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
    79
    {
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    80
      ObjectFactory factory;
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    81
      StringValue s;
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    82
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    83
      g_simTypeImpl.GetValue (s);
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    84
      factory.SetTypeId (s.Get ());
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    85
      impl = factory.Create<SimulatorImpl> ();
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
    86
2913
66dd24c80d75 bug 143: rename scheduler files
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
    87
      Ptr<Scheduler> scheduler = CreateObject<MapScheduler> ();
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    88
      impl->SetScheduler (scheduler);
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
    89
3470
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    90
//
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    91
// Note: we call LogSetTimePrinter _after_ creating the implementation
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    92
// object because the act of creation can trigger calls to the logging 
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    93
// framework which would call the TimePrinter function which would call 
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    94
// Simulator::Now which would call Simulator::GetImpl, and, thus, get us 
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    95
// in an infinite recursion until the stack explodes.
21022872009d make simulator implementation replaceable via global default value
Craig Dowell <craigdo@ee.washington.edu>
parents: 3469
diff changeset
    96
//
3005
cc521f35f033 avoid segfault when setting NS_LOG=*
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2989
diff changeset
    97
      LogSetTimePrinter (&TimePrinter);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
    98
    }
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
    99
  return PeekPointer (impl);
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   100
}
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   101
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   102
void
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   103
Simulator::Destroy (void)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   104
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   105
  NS_LOG_FUNCTION_NOARGS ();
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   106
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
   107
  Ptr<SimulatorImpl> &impl = *PeekImpl (); 
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
   108
  if (impl == 0)
2901
81ac5e25e8c2 Make sure that we really attempt to destroy everything upon process exit. Gets rid of spurious leak reports in valgrind.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2630
diff changeset
   109
    {
81ac5e25e8c2 Make sure that we really attempt to destroy everything upon process exit. Gets rid of spurious leak reports in valgrind.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2630
diff changeset
   110
      return;
81ac5e25e8c2 Make sure that we really attempt to destroy everything upon process exit. Gets rid of spurious leak reports in valgrind.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2630
diff changeset
   111
    }
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   112
  /* Note: we have to call LogSetTimePrinter (0) below because if we do not do
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   113
   * this, and restart a simulation after this call to Destroy, (which is 
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   114
   * legal), Simulator::GetImpl will trigger again an infinite recursion until
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   115
   * the stack explodes.
3006
054b9ca57390 add comments about previous bug fix
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3005
diff changeset
   116
   */
3005
cc521f35f033 avoid segfault when setting NS_LOG=*
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2989
diff changeset
   117
  LogSetTimePrinter (0);
3809
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
   118
  impl->Destroy ();
5e007004402e move MakeEvent out of Simulator
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3808
diff changeset
   119
  impl = 0;
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   120
}
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   121
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   122
void
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   123
Simulator::SetScheduler (Ptr<Scheduler> scheduler)
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   124
{
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   125
  NS_LOG_FUNCTION (scheduler);
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   126
  GetImpl ()->SetScheduler (scheduler);
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   127
}
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   128
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   129
void 
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   130
Simulator::EnableLogTo (char const *filename)
3489
b5ef00370c70 bug 252: get rid of dead code.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3479
diff changeset
   131
{}
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   132
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   133
bool 
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   134
Simulator::IsFinished (void)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   135
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   136
  NS_LOG_FUNCTION_NOARGS ();
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   137
  return GetImpl ()->IsFinished ();
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   138
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   139
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   140
Time
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   141
Simulator::Next (void)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   142
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   143
  NS_LOG_FUNCTION_NOARGS ();
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   144
  return GetImpl ()->Next ();
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   145
}
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   146
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   147
void 
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   148
Simulator::Run (void)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   149
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   150
  NS_LOG_FUNCTION_NOARGS ();
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   151
  GetImpl ()->Run ();
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   152
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   153
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   154
void 
3515
88e9cee20461 Bug #270: Simulator::RunOneEvent
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3503
diff changeset
   155
Simulator::RunOneEvent (void)
88e9cee20461 Bug #270: Simulator::RunOneEvent
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3503
diff changeset
   156
{
88e9cee20461 Bug #270: Simulator::RunOneEvent
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3503
diff changeset
   157
  NS_LOG_FUNCTION_NOARGS ();
88e9cee20461 Bug #270: Simulator::RunOneEvent
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3503
diff changeset
   158
  GetImpl ()->RunOneEvent ();
88e9cee20461 Bug #270: Simulator::RunOneEvent
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3503
diff changeset
   159
}
88e9cee20461 Bug #270: Simulator::RunOneEvent
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3503
diff changeset
   160
88e9cee20461 Bug #270: Simulator::RunOneEvent
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3503
diff changeset
   161
void 
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   162
Simulator::Stop (void)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   163
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   164
  NS_LOG_LOGIC ("stop");
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   165
  GetImpl ()->Stop ();
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   166
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   167
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   168
void 
3174
efeb6e5c276d Make Application::Start/Stop times relative, Simulator::StopAt(time) renamed to Simulator::Stop(time) and time also made relative, to improve consistency of the API which uses relative times everywhere else. Closes bug #191.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3008
diff changeset
   169
Simulator::Stop (Time const &time)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   170
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   171
  NS_LOG_FUNCTION (time);
4009
76cb8ed8fe98 fix bug 230, rescan bindings
mathieu.lacage@sophia.inria.fr
parents: 3920
diff changeset
   172
  Simulator::Schedule (time, &Simulator::Stop);
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   173
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   174
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   175
Time
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   176
Simulator::Now (void)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   177
{
3503
b8cccd54da26 bug 269: revert parts of 9e763021e045 and add comments to avoid getting these again.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3489
diff changeset
   178
  /* Please, don't include any calls to logging macros in this function
b8cccd54da26 bug 269: revert parts of 9e763021e045 and add comments to avoid getting these again.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3489
diff changeset
   179
   * or pay the price, that is, stack explosions.
b8cccd54da26 bug 269: revert parts of 9e763021e045 and add comments to avoid getting these again.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3489
diff changeset
   180
   */
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   181
  return GetImpl ()->Now ();
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   182
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   183
1690
16b198d63c1e add Simulator::GetDelayLeft
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1522
diff changeset
   184
Time
16b198d63c1e add Simulator::GetDelayLeft
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1522
diff changeset
   185
Simulator::GetDelayLeft (const EventId &id)
16b198d63c1e add Simulator::GetDelayLeft
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1522
diff changeset
   186
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   187
  NS_LOG_FUNCTION (&id);
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   188
  return GetImpl ()->GetDelayLeft (id);
1690
16b198d63c1e add Simulator::GetDelayLeft
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1522
diff changeset
   189
}
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   190
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   191
EventId
1010
3a252ceeac44 more optimizations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1009
diff changeset
   192
Simulator::Schedule (Time const &time, const Ptr<EventImpl> &ev)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   193
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   194
  NS_LOG_FUNCTION (time << ev);
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   195
  return DoSchedule (time, GetPointer (ev));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   196
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   197
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
   198
EventId
1010
3a252ceeac44 more optimizations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1009
diff changeset
   199
Simulator::ScheduleNow (const Ptr<EventImpl> &ev)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   200
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   201
  NS_LOG_FUNCTION (ev);
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   202
  return DoScheduleNow (GetPointer (ev));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   203
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   204
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
   205
EventId
1010
3a252ceeac44 more optimizations
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1009
diff changeset
   206
Simulator::ScheduleDestroy (const Ptr<EventImpl> &ev)
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   207
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   208
  NS_LOG_FUNCTION (ev);
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   209
  return DoScheduleDestroy (GetPointer (ev));
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   210
}
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   211
EventId 
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   212
Simulator::DoSchedule (Time const &time, EventImpl *impl)
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   213
{
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   214
  return GetImpl ()->Schedule (time, impl);
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   215
}
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   216
EventId 
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   217
Simulator::DoScheduleNow (EventImpl *impl)
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   218
{
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   219
  return GetImpl ()->ScheduleNow (impl);
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   220
}
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   221
EventId 
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   222
Simulator::DoScheduleDestroy (EventImpl *impl)
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   223
{
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   224
  return GetImpl ()->ScheduleDestroy (impl);
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   225
}
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   226
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   227
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   228
EventId
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   229
Simulator::Schedule (Time const &time, void (*f) (void))
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   230
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   231
  NS_LOG_FUNCTION (time << f);
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   232
  return DoSchedule (time, MakeEvent (f));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   233
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   234
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
   235
EventId
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   236
Simulator::ScheduleNow (void (*f) (void))
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   237
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   238
  NS_LOG_FUNCTION (f);
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   239
  return DoScheduleNow (MakeEvent (f));
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   240
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   241
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
   242
EventId
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   243
Simulator::ScheduleDestroy (void (*f) (void))
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   244
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   245
  NS_LOG_FUNCTION (f);
3808
ace932ee6eef avoid using Ptr<EventImpl>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3801
diff changeset
   246
  return DoScheduleDestroy (MakeEvent (f));
75
0f3f4b0a158b reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 54
diff changeset
   247
}
0f3f4b0a158b reorganize the implementation of template member methods in Simulator class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 54
diff changeset
   248
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   249
void
1011
7e5be9b118c9 be more consistant in the handling of references
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1010
diff changeset
   250
Simulator::Remove (const EventId &ev)
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   251
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   252
  NS_LOG_FUNCTION (&ev);
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   253
  return GetImpl ()->Remove (ev);
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   254
}
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   255
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   256
void
1011
7e5be9b118c9 be more consistant in the handling of references
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1010
diff changeset
   257
Simulator::Cancel (const EventId &ev)
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   258
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   259
  NS_LOG_FUNCTION (&ev);
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   260
  return GetImpl ()->Cancel (ev);
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   261
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   262
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   263
bool 
1011
7e5be9b118c9 be more consistant in the handling of references
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1010
diff changeset
   264
Simulator::IsExpired (const EventId &id)
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   265
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   266
  NS_LOG_FUNCTION (&id);
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   267
  return GetImpl ()->IsExpired (id);
25
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   268
}
9b3bb088c560 first cut at george's ideas on api
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 24
diff changeset
   269
679
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 675
diff changeset
   270
Time Now (void)
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 675
diff changeset
   271
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   272
  NS_LOG_FUNCTION_NOARGS ();
679
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 675
diff changeset
   273
  return Time (Simulator::Now ());
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 675
diff changeset
   274
}
0c4773ca0f29 avoid cyclic dependency between Simulator and Time code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 675
diff changeset
   275
1863
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
   276
Time 
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
   277
Simulator::GetMaximumSimulationTime (void)
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
   278
{
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   279
  NS_LOG_FUNCTION_NOARGS ();
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   280
  return GetImpl ()->GetMaximumSimulationTime ();
1863
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
   281
}
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
   282
3479
d89e9db667f0 Add empty implementation of Simulator::SetImplementation, to make Python bindings work.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3470
diff changeset
   283
void
d89e9db667f0 Add empty implementation of Simulator::SetImplementation, to make Python bindings work.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3470
diff changeset
   284
Simulator::SetImplementation (Ptr<SimulatorImpl> impl)
d89e9db667f0 Add empty implementation of Simulator::SetImplementation, to make Python bindings work.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3470
diff changeset
   285
{
d89e9db667f0 Add empty implementation of Simulator::SetImplementation, to make Python bindings work.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3470
diff changeset
   286
  NS_FATAL_ERROR ("TODO");
d89e9db667f0 Add empty implementation of Simulator::SetImplementation, to make Python bindings work.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3470
diff changeset
   287
}
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
   288
Ptr<SimulatorImpl>
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
   289
Simulator::GetImplementation (void)
3801
dc1f5e534e56 slight reorganization and naming change for added realtime methods
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   290
{
3816
edd4928b2046 remove realtime public API.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3811
diff changeset
   291
  return GetImpl ();
3801
dc1f5e534e56 slight reorganization and naming change for added realtime methods
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   292
}
dc1f5e534e56 slight reorganization and naming change for added realtime methods
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   293
dc1f5e534e56 slight reorganization and naming change for added realtime methods
Craig Dowell <craigdo@ee.washington.edu>
parents: 3796
diff changeset
   294
3479
d89e9db667f0 Add empty implementation of Simulator::SetImplementation, to make Python bindings work.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3470
diff changeset
   295
1863
50fa1ca3b26c bug 104: add a method to retrive the maximum simulation time.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1696
diff changeset
   296
} // namespace ns3
9
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   297
2c31ae7c94db import from yans
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   298
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   299
#ifdef RUN_SELF_TESTS
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   300
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   301
#include "ns3/test.h"
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   302
#include "ns3/ptr.h"
2913
66dd24c80d75 bug 143: rename scheduler files
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
   303
#include "list-scheduler.h"
66dd24c80d75 bug 143: rename scheduler files
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
   304
#include "heap-scheduler.h"
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   305
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   306
namespace ns3 {
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   307
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   308
static void foo0 (void)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   309
{}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   310
static void foo1 (int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   311
{}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   312
static void foo2 (int, int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   313
{}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   314
static void foo3 (int, int, int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   315
{}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   316
static void foo4 (int, int, int, int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   317
{}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   318
static void foo5 (int, int, int, int, int)
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   319
{}
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   320
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   321
#if 1
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   322
static void ber1 (int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   323
{}
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   324
static void ber2 (int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   325
{}
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   326
static void ber3 (int &, int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   327
{}
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   328
static void ber4 (int &, int &, int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   329
{}
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   330
static void ber5 (int &, int &, int &, int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   331
{}
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   332
#endif
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   333
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   334
static void cber1 (const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   335
{}
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   336
static void cber2 (const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   337
{}
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   338
static void cber3 (const int &, const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   339
{}
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   340
static void cber4 (const int &, const int &, const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   341
{}
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   342
static void cber5 (const int &, const int &, const int &, const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   343
{}
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   344
  
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   345
2630
17b545238ab3 do not use ObjectBase as a base class.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2577
diff changeset
   346
class SimulatorTests : public Test
17b545238ab3 do not use ObjectBase as a base class.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2577
diff changeset
   347
{
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   348
public:
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   349
  SimulatorTests ();
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   350
  // only here for testing of Ptr<>
1296
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   351
  void Ref (void) const;
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   352
  void Unref (void) const;
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   353
  virtual ~SimulatorTests ();
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   354
  virtual bool RunTests (void);
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   355
private:
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   356
  uint64_t NowUs ();
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   357
  bool RunOneTest (void);
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   358
  void RunTestsConst (void) const;
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   359
  void A (int a);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   360
  void B (int b);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   361
  void C (int c);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   362
  void D (int d);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   363
  void bar0 (void);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   364
  void bar1 (int);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   365
  void bar2 (int, int);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   366
  void bar3 (int, int, int);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   367
  void bar4 (int, int, int, int);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   368
  void bar5 (int, int, int, int, int);
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   369
  void baz1 (int &);
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   370
  void baz2 (int &, int &);
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   371
  void baz3 (int &, int &, int &);
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   372
  void baz4 (int &, int &, int &, int &);
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   373
  void baz5 (int &, int &, int &, int &, int &);
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   374
  void cbaz1 (const int &);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   375
  void cbaz2 (const int &, const int &);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   376
  void cbaz3 (const int &, const int &, const int &);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   377
  void cbaz4 (const int &, const int &, const int &, const int &);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   378
  void cbaz5 (const int &, const int &, const int &, const int &, const int &);
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   379
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   380
  void bar0c (void) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   381
  void bar1c (int) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   382
  void bar2c (int, int) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   383
  void bar3c (int, int, int) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   384
  void bar4c (int, int, int, int) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   385
  void bar5c (int, int, int, int, int) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   386
  void baz1c (int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   387
  void baz2c (int &, int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   388
  void baz3c (int &, int &, int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   389
  void baz4c (int &, int &, int &, int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   390
  void baz5c (int &, int &, int &, int &, int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   391
  void cbaz1c (const int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   392
  void cbaz2c (const int &, const int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   393
  void cbaz3c (const int &, const int &, const int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   394
  void cbaz4c (const int &, const int &, const int &, const int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   395
  void cbaz5c (const int &, const int &, const int &, const int &, const int &) const;
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   396
964
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   397
  void destroy (void);
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   398
  
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   399
  bool m_b;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   400
  bool m_a;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   401
  bool m_c;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   402
  bool m_d;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   403
  EventId m_idC;
964
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   404
  bool m_destroy;
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   405
  EventId m_destroyId;
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   406
};
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   407
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   408
SimulatorTests::SimulatorTests ()
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   409
  : Test ("Simulator")
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   410
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   411
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   412
SimulatorTests::~SimulatorTests ()
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   413
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   414
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   415
void 
1296
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   416
SimulatorTests::Ref (void) const
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   417
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   418
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   419
void 
1296
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   420
SimulatorTests::Unref (void) const
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   421
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   422
143
552ff26b4224 new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 129
diff changeset
   423
uint64_t
552ff26b4224 new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 129
diff changeset
   424
SimulatorTests::NowUs (void)
552ff26b4224 new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 129
diff changeset
   425
{
163
2a7e05018eeb rename Time::ApproximateTo methods to Time::Get
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 162
diff changeset
   426
  uint64_t ns = Now ().GetNanoSeconds ();
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   427
  return ns / 1000;
143
552ff26b4224 new Time implementation
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 129
diff changeset
   428
}  
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   429
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   430
void
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   431
SimulatorTests::A (int a)
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   432
{
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   433
  m_a = false;
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   434
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   435
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   436
void
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   437
SimulatorTests::B (int b)
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   438
{
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   439
  if (b != 2 || NowUs () != 11) 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   440
    {
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   441
      m_b = false;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   442
    } 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   443
  else 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   444
    {
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   445
      m_b = true;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   446
    }
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   447
  Simulator::Remove (m_idC);
162
5b398ac221c7 make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 150
diff changeset
   448
  Simulator::Schedule (MicroSeconds (10), &SimulatorTests::D, this, 4);
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   449
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   450
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   451
void
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   452
SimulatorTests::C (int c)
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   453
{
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   454
  m_c = false;
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   455
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   456
32
789f69e312bf more tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 31
diff changeset
   457
void
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   458
SimulatorTests::D (int d)
32
789f69e312bf more tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 31
diff changeset
   459
{
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   460
  if (d != 4 || NowUs () != (11+10)) 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   461
    {
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   462
      m_d = false;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   463
    } 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   464
  else 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   465
    {
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   466
      m_d = true;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   467
    }
32
789f69e312bf more tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 31
diff changeset
   468
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   469
964
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   470
void
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   471
SimulatorTests::destroy (void)
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   472
{
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   473
  if (m_destroyId.IsExpired ())
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   474
    {
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   475
      m_destroy = true; 
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   476
    }
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   477
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   478
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   479
void 
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   480
SimulatorTests::bar0 (void)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   481
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   482
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   483
void 
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   484
SimulatorTests::bar1 (int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   485
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   486
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   487
void 
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   488
SimulatorTests::bar2 (int, int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   489
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   490
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   491
void 
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   492
SimulatorTests::bar3 (int, int, int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   493
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   494
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   495
void 
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   496
SimulatorTests::bar4 (int, int, int, int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   497
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   498
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   499
void 
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   500
SimulatorTests::bar5 (int, int, int, int, int)
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   501
{}
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   502
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   503
void
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   504
SimulatorTests::baz1 (int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   505
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   506
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   507
void
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   508
SimulatorTests::baz2 (int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   509
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   510
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   511
void
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   512
SimulatorTests::baz3 (int &, int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   513
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   514
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   515
void 
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   516
SimulatorTests::baz4 (int &, int &, int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   517
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   518
945
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   519
void 
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   520
SimulatorTests::baz5 (int &, int &, int &, int &, int &)
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   521
{}
6b8efd6b621a failing testcases to for events with references as arguments
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 927
diff changeset
   522
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   523
void
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   524
SimulatorTests::cbaz1 (const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   525
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   526
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   527
void
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   528
SimulatorTests::cbaz2 (const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   529
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   530
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   531
void
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   532
SimulatorTests::cbaz3 (const int &, const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   533
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   534
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   535
void 
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   536
SimulatorTests::cbaz4 (const int &, const int &, const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   537
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   538
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   539
void 
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   540
SimulatorTests::cbaz5 (const int &, const int &, const int &, const int &, const int &)
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   541
{}
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   542
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   543
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   544
SimulatorTests::bar0c (void) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   545
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   546
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   547
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   548
SimulatorTests::bar1c (int) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   549
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   550
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   551
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   552
SimulatorTests::bar2c (int, int) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   553
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   554
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   555
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   556
SimulatorTests::bar3c (int, int, int) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   557
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   558
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   559
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   560
SimulatorTests::bar4c (int, int, int, int) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   561
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   562
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   563
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   564
SimulatorTests::bar5c (int, int, int, int, int) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   565
{}
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   566
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   567
void
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   568
SimulatorTests::baz1c (int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   569
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   570
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   571
void
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   572
SimulatorTests::baz2c (int &, int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   573
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   574
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   575
void
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   576
SimulatorTests::baz3c (int &, int &, int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   577
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   578
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   579
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   580
SimulatorTests::baz4c (int &, int &, int &, int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   581
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   582
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   583
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   584
SimulatorTests::baz5c (int &, int &, int &, int &, int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   585
{}
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   586
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   587
void
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   588
SimulatorTests::cbaz1c (const int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   589
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   590
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   591
void
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   592
SimulatorTests::cbaz2c (const int &, const int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   593
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   594
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   595
void
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   596
SimulatorTests::cbaz3c (const int &, const int &, const int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   597
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   598
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   599
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   600
SimulatorTests::cbaz4c (const int &, const int &, const int &, const int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   601
{}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   602
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   603
void 
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   604
SimulatorTests::cbaz5c (const int &, const int &, const int &, const int &, const int &) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   605
{}
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   606
114
fe0504af6d16 test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 111
diff changeset
   607
bool
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   608
SimulatorTests::RunOneTest (void)
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   609
{
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   610
  bool result = true;
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   611
  m_a = true;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   612
  m_b = false;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   613
  m_c = true;
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   614
  m_d = false;
114
fe0504af6d16 test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 111
diff changeset
   615
162
5b398ac221c7 make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 150
diff changeset
   616
  EventId a = Simulator::Schedule (MicroSeconds (10), &SimulatorTests::A, this, 1);
5b398ac221c7 make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 150
diff changeset
   617
  Simulator::Schedule (MicroSeconds (11), &SimulatorTests::B, this, 2);
5b398ac221c7 make Time relative instead of Absolute
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 150
diff changeset
   618
  m_idC = Simulator::Schedule (MicroSeconds (12), &SimulatorTests::C, this, 3);
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   619
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   620
  NS_TEST_ASSERT (!m_idC.IsExpired ());
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   621
  NS_TEST_ASSERT (!a.IsExpired ());
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   622
  Simulator::Cancel (a);
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   623
  NS_TEST_ASSERT (a.IsExpired ());
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   624
  Simulator::Run ();
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   625
  NS_TEST_ASSERT (m_a);
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   626
  NS_TEST_ASSERT (m_b);
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   627
  NS_TEST_ASSERT (m_c);
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   628
  NS_TEST_ASSERT (m_d);
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   629
  return result;
114
fe0504af6d16 test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 111
diff changeset
   630
}
3469
9e763021e045 factor simulator into interface and (multiple) implementation pieces
Craig Dowell <craigdo@ee.washington.edu>
parents: 3188
diff changeset
   631
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   632
void
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   633
SimulatorTests::RunTestsConst (void) const
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   634
{
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   635
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0c, this);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   636
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   637
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   638
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   639
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   640
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5c, this, 0, 0, 0, 0, 0);
1296
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   641
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0c, Ptr<const SimulatorTests> (this));
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   642
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1c, Ptr<const SimulatorTests> (this), 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   643
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2c, Ptr<const SimulatorTests> (this), 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   644
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3c, Ptr<const SimulatorTests> (this), 0, 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   645
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   646
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0, 0);
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   647
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   648
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   649
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   650
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   651
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz5c, this, 0, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   652
  Simulator::ScheduleNow (&SimulatorTests::bar0c, this);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   653
  Simulator::ScheduleNow (&SimulatorTests::bar1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   654
  Simulator::ScheduleNow (&SimulatorTests::bar2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   655
  Simulator::ScheduleNow (&SimulatorTests::bar3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   656
  Simulator::ScheduleNow (&SimulatorTests::bar4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   657
  Simulator::ScheduleNow (&SimulatorTests::bar5c, this, 0, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   658
  Simulator::ScheduleNow (&SimulatorTests::cbaz1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   659
  Simulator::ScheduleNow (&SimulatorTests::cbaz2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   660
  Simulator::ScheduleNow (&SimulatorTests::cbaz3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   661
  Simulator::ScheduleNow (&SimulatorTests::cbaz4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   662
  Simulator::ScheduleNow (&SimulatorTests::cbaz5c, this, 0, 0, 0, 0, 0);
1296
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   663
  Simulator::ScheduleNow (&SimulatorTests::bar0c, Ptr<const SimulatorTests> (this));
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   664
  Simulator::ScheduleNow (&SimulatorTests::bar1c, Ptr<const SimulatorTests> (this), 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   665
  Simulator::ScheduleNow (&SimulatorTests::bar2c, Ptr<const SimulatorTests> (this), 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   666
  Simulator::ScheduleNow (&SimulatorTests::bar3c, Ptr<const SimulatorTests> (this), 0, 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   667
  Simulator::ScheduleNow (&SimulatorTests::bar4c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   668
  Simulator::ScheduleNow (&SimulatorTests::bar5c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0, 0);
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   669
  Simulator::ScheduleDestroy (&SimulatorTests::bar0c, this);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   670
  Simulator::ScheduleDestroy (&SimulatorTests::bar1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   671
  Simulator::ScheduleDestroy (&SimulatorTests::bar2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   672
  Simulator::ScheduleDestroy (&SimulatorTests::bar3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   673
  Simulator::ScheduleDestroy (&SimulatorTests::bar4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   674
  Simulator::ScheduleDestroy (&SimulatorTests::bar5c, this, 0, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   675
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   676
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   677
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   678
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   679
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz5c, this, 0, 0, 0, 0, 0);
1296
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   680
  Simulator::ScheduleDestroy (&SimulatorTests::bar0c, Ptr<const SimulatorTests> (this));
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   681
  Simulator::ScheduleDestroy (&SimulatorTests::bar1c, Ptr<const SimulatorTests> (this), 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   682
  Simulator::ScheduleDestroy (&SimulatorTests::bar2c, Ptr<const SimulatorTests> (this), 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   683
  Simulator::ScheduleDestroy (&SimulatorTests::bar3c, Ptr<const SimulatorTests> (this), 0, 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   684
  Simulator::ScheduleDestroy (&SimulatorTests::bar4c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0);
173efb6d92d8 fix last errors for new tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1294
diff changeset
   685
  Simulator::ScheduleDestroy (&SimulatorTests::bar5c, Ptr<const SimulatorTests> (this), 0, 0, 0, 0, 0);
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   686
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   687
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   688
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   689
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   690
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz5c, this, 0, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   691
  Simulator::ScheduleNow (&SimulatorTests::baz1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   692
  Simulator::ScheduleNow (&SimulatorTests::baz2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   693
  Simulator::ScheduleNow (&SimulatorTests::baz3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   694
  Simulator::ScheduleNow (&SimulatorTests::baz4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   695
  Simulator::ScheduleNow (&SimulatorTests::baz5c, this, 0, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   696
  Simulator::ScheduleDestroy (&SimulatorTests::baz1c, this, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   697
  Simulator::ScheduleDestroy (&SimulatorTests::baz2c, this, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   698
  Simulator::ScheduleDestroy (&SimulatorTests::baz3c, this, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   699
  Simulator::ScheduleDestroy (&SimulatorTests::baz4c, this, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   700
  Simulator::ScheduleDestroy (&SimulatorTests::baz5c, this, 0, 0, 0, 0, 0);
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   701
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   702
  Simulator::Run ();
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   703
  Simulator::Destroy ();
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   704
}
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   705
114
fe0504af6d16 test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 111
diff changeset
   706
bool 
122
6b8f1eda5c57 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 121
diff changeset
   707
SimulatorTests::RunTests (void)
114
fe0504af6d16 test each default event scheduler
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 111
diff changeset
   708
{
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   709
  bool result = true;
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   710
1522
70371ffd0ce5 Call Simulator::Destroy () before running simulator unit tests, to force time to start from zero (some tests check for absolute times)
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1521
diff changeset
   711
  Simulator::Destroy ();
2913
66dd24c80d75 bug 143: rename scheduler files
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
   712
  Simulator::SetScheduler (CreateObject<ListScheduler> ());
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   713
  if (!RunOneTest ()) 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   714
    {
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   715
      result = false;
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   716
    }
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   717
  Simulator::Destroy ();
2913
66dd24c80d75 bug 143: rename scheduler files
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
   718
  Simulator::SetScheduler (CreateObject<HeapScheduler> ());
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   719
  if (!RunOneTest ()) 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   720
    {
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   721
      result = false;
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   722
    }
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   723
  Simulator::Destroy ();
2913
66dd24c80d75 bug 143: rename scheduler files
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2901
diff changeset
   724
  Simulator::SetScheduler (CreateObject<MapScheduler> ());
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   725
  if (!RunOneTest ()) 
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   726
    {
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   727
      result = false;
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   728
    }
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   729
  Simulator::Destroy ();
31
2def0da92178 add simulator tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 30
diff changeset
   730
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   731
  Simulator::Schedule (Seconds (0.0), &foo0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   732
  Simulator::Schedule (Seconds (0.0), &foo1, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   733
  Simulator::Schedule (Seconds (0.0), &foo2, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   734
  Simulator::Schedule (Seconds (0.0), &foo3, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   735
  Simulator::Schedule (Seconds (0.0), &foo4, 0, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   736
  Simulator::Schedule (Seconds (0.0), &foo5, 0, 0, 0, 0, 0);
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   737
  Simulator::Schedule (Seconds (0.0), &cber1, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   738
  Simulator::Schedule (Seconds (0.0), &cber2, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   739
  Simulator::Schedule (Seconds (0.0), &cber3, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   740
  Simulator::Schedule (Seconds (0.0), &cber4, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   741
  Simulator::Schedule (Seconds (0.0), &cber5, 0, 0, 0, 0, 0);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   742
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0, this);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   743
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1, this, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   744
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2, this, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   745
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3, this, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   746
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4, this, 0, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   747
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5, this, 0, 0, 0, 0, 0);
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   748
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar0, Ptr<SimulatorTests> (this));
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   749
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   750
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   751
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   752
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   753
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0);
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   754
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz1, this, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   755
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz2, this, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   756
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz3, this, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   757
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz4, this, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   758
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::cbaz5, this, 0, 0, 0, 0, 0);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   759
  Simulator::ScheduleNow (&foo0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   760
  Simulator::ScheduleNow (&foo1, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   761
  Simulator::ScheduleNow (&foo2, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   762
  Simulator::ScheduleNow (&foo3, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   763
  Simulator::ScheduleNow (&foo4, 0, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   764
  Simulator::ScheduleNow (&foo5, 0, 0, 0, 0, 0);
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   765
  Simulator::ScheduleNow (&cber1, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   766
  Simulator::ScheduleNow (&cber2, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   767
  Simulator::ScheduleNow (&cber3, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   768
  Simulator::ScheduleNow (&cber4, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   769
  Simulator::ScheduleNow (&cber5, 0, 0, 0, 0, 0);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   770
  Simulator::ScheduleNow (&SimulatorTests::bar0, this);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   771
  Simulator::ScheduleNow (&SimulatorTests::bar1, this, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   772
  Simulator::ScheduleNow (&SimulatorTests::bar2, this, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   773
  Simulator::ScheduleNow (&SimulatorTests::bar3, this, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   774
  Simulator::ScheduleNow (&SimulatorTests::bar4, this, 0, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   775
  Simulator::ScheduleNow (&SimulatorTests::bar5, this, 0, 0, 0, 0, 0);
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   776
  Simulator::ScheduleNow (&SimulatorTests::cbaz1, this, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   777
  Simulator::ScheduleNow (&SimulatorTests::cbaz2, this, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   778
  Simulator::ScheduleNow (&SimulatorTests::cbaz3, this, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   779
  Simulator::ScheduleNow (&SimulatorTests::cbaz4, this, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   780
  Simulator::ScheduleNow (&SimulatorTests::cbaz5, this, 0, 0, 0, 0, 0);
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   781
  Simulator::ScheduleNow (&SimulatorTests::bar0, Ptr<SimulatorTests> (this));
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   782
  Simulator::ScheduleNow (&SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   783
  Simulator::ScheduleNow (&SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   784
  Simulator::ScheduleNow (&SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   785
  Simulator::ScheduleNow (&SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   786
  Simulator::ScheduleNow (&SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   787
  Simulator::ScheduleDestroy (&foo0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   788
  Simulator::ScheduleDestroy (&foo1, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   789
  Simulator::ScheduleDestroy (&foo2, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   790
  Simulator::ScheduleDestroy (&foo3, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   791
  Simulator::ScheduleDestroy (&foo4, 0, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   792
  Simulator::ScheduleDestroy (&foo5, 0, 0, 0, 0, 0);
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   793
  Simulator::ScheduleDestroy (&cber1, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   794
  Simulator::ScheduleDestroy (&cber2, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   795
  Simulator::ScheduleDestroy (&cber3, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   796
  Simulator::ScheduleDestroy (&cber4, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   797
  Simulator::ScheduleDestroy (&cber5, 0, 0, 0, 0, 0);
150
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   798
  Simulator::ScheduleDestroy (&SimulatorTests::bar0, this);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   799
  Simulator::ScheduleDestroy (&SimulatorTests::bar1, this, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   800
  Simulator::ScheduleDestroy (&SimulatorTests::bar2, this, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   801
  Simulator::ScheduleDestroy (&SimulatorTests::bar3, this, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   802
  Simulator::ScheduleDestroy (&SimulatorTests::bar4, this, 0, 0, 0, 0);
663120712cd9 fix coding style
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 148
diff changeset
   803
  Simulator::ScheduleDestroy (&SimulatorTests::bar5, this, 0, 0, 0, 0, 0);
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   804
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz1, this, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   805
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz2, this, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   806
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz3, this, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   807
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz4, this, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   808
  Simulator::ScheduleDestroy (&SimulatorTests::cbaz5, this, 0, 0, 0, 0, 0);
690
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   809
  Simulator::ScheduleDestroy (&SimulatorTests::bar0, Ptr<SimulatorTests> (this));
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   810
  Simulator::ScheduleDestroy (&SimulatorTests::bar1, Ptr<SimulatorTests> (this), 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   811
  Simulator::ScheduleDestroy (&SimulatorTests::bar2, Ptr<SimulatorTests> (this), 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   812
  Simulator::ScheduleDestroy (&SimulatorTests::bar3, Ptr<SimulatorTests> (this), 0, 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   813
  Simulator::ScheduleDestroy (&SimulatorTests::bar4, Ptr<SimulatorTests> (this), 0, 0, 0, 0);
48cf425136d6 fix bug 24
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 679
diff changeset
   814
  Simulator::ScheduleDestroy (&SimulatorTests::bar5, Ptr<SimulatorTests> (this), 0, 0, 0, 0, 0);
181
006158ef00f1 fix memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 163
diff changeset
   815
948
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   816
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   817
  // the code below does not compile, as expected.
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   818
  //Simulator::Schedule (Seconds (0.0), &cber1, 0.0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   819
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   820
#if 1
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   821
  Simulator::Schedule (Seconds (0.0), &ber1, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   822
  Simulator::Schedule (Seconds (0.0), &ber2, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   823
  Simulator::Schedule (Seconds (0.0), &ber3, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   824
  Simulator::Schedule (Seconds (0.0), &ber4, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   825
  Simulator::Schedule (Seconds (0.0), &ber5, 0, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   826
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz1, this, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   827
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz2, this, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   828
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz3, this, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   829
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz4, this, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   830
  Simulator::Schedule (Seconds (0.0), &SimulatorTests::baz5, this, 0, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   831
  Simulator::ScheduleNow (&ber1, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   832
  Simulator::ScheduleNow (&ber2, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   833
  Simulator::ScheduleNow (&ber3, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   834
  Simulator::ScheduleNow (&ber4, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   835
  Simulator::ScheduleNow (&ber5, 0, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   836
  Simulator::ScheduleNow (&SimulatorTests::baz1, this, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   837
  Simulator::ScheduleNow (&SimulatorTests::baz2, this, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   838
  Simulator::ScheduleNow (&SimulatorTests::baz3, this, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   839
  Simulator::ScheduleNow (&SimulatorTests::baz4, this, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   840
  Simulator::ScheduleNow (&SimulatorTests::baz5, this, 0, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   841
  Simulator::ScheduleDestroy (&ber1, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   842
  Simulator::ScheduleDestroy (&ber2, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   843
  Simulator::ScheduleDestroy (&ber3, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   844
  Simulator::ScheduleDestroy (&ber4, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   845
  Simulator::ScheduleDestroy (&ber5, 0, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   846
  Simulator::ScheduleDestroy (&SimulatorTests::baz1, this, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   847
  Simulator::ScheduleDestroy (&SimulatorTests::baz2, this, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   848
  Simulator::ScheduleDestroy (&SimulatorTests::baz3, this, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   849
  Simulator::ScheduleDestroy (&SimulatorTests::baz4, this, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   850
  Simulator::ScheduleDestroy (&SimulatorTests::baz5, this, 0, 0, 0, 0, 0);
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   851
#endif
8dc076230f11 finish support for references as arguments to event handlers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 945
diff changeset
   852
1294
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   853
  RunTestsConst ();
b59fb36ab86a add failing tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1224
diff changeset
   854
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
   855
  EventId nowId = Simulator::ScheduleNow (&foo0);
964
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   856
  m_destroyId = Simulator::ScheduleDestroy (&SimulatorTests::destroy, this);
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   857
  NS_TEST_ASSERT (!m_destroyId.IsExpired ());
963
3a7a66d1942c add support to cancel Now and Destroy events.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 948
diff changeset
   858
181
006158ef00f1 fix memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 163
diff changeset
   859
  Simulator::Run ();
964
e49de7414508 make sure IsExpired handles destroy events correctly
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 963
diff changeset
   860
  m_destroy = false;
181
006158ef00f1 fix memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 163
diff changeset
   861
  Simulator::Destroy ();
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   862
  NS_TEST_ASSERT (m_destroy);
146
2c9ef359e320 implement overloads for ScheduleNow and ScheduleDestroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 145
diff changeset
   863
1008
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
   864
  EventId anId = Simulator::ScheduleNow (&foo0);
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
   865
  EventId anotherId = anId;
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   866
  NS_TEST_ASSERT (!(anId.IsExpired () || anotherId.IsExpired ()));
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   867
1008
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
   868
  Simulator::Remove (anId);
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   869
  NS_TEST_ASSERT (anId.IsExpired ());
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   870
  NS_TEST_ASSERT (anotherId.IsExpired ());
1008
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
   871
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
   872
  Simulator::Run ();
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
   873
  Simulator::Destroy ();
2357
d64b1561b1c2 Release all events left upon Simulator::Destroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1863
diff changeset
   874
d64b1561b1c2 Release all events left upon Simulator::Destroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1863
diff changeset
   875
  Simulator::Schedule (Seconds (10.0), &SimulatorTests::baz1, this, 0);
3174
efeb6e5c276d Make Application::Start/Stop times relative, Simulator::StopAt(time) renamed to Simulator::Stop(time) and time also made relative, to improve consistency of the API which uses relative times everywhere else. Closes bug #191.
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 3008
diff changeset
   876
  Simulator::Stop (Seconds (1.0));
2357
d64b1561b1c2 Release all events left upon Simulator::Destroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1863
diff changeset
   877
  Simulator::Run ();
d64b1561b1c2 Release all events left upon Simulator::Destroy
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1863
diff changeset
   878
  Simulator::Destroy ();
1008
6f2ea723a1db use a Ptr<> to manage EventImpl instances
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1005
diff changeset
   879
1521
7563328d71ea Use NS_TEST_* macros for simulator unit tests
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents: 1296
diff changeset
   880
  return result;
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   881
}
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   882
53
ae406f4957d5 variable/method/function coding style update
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 52
diff changeset
   883
SimulatorTests gSimulatorTests;
30
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   884
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   885
}; // namespace ns3
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   886
eb38b7903dfb add empty simulator test
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 29
diff changeset
   887
#endif /* RUN_SELF_TESTS */
24
706b1d903da9 doc typo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 22
diff changeset
   888
706b1d903da9 doc typo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 22
diff changeset
   889
37
af78cb75be51 improve tests
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 36
diff changeset
   890