src/core/model/traced-value.h
author Peter D. Barnes, Jr. <barnes26@llnl.gov>
Mon, 15 Jul 2013 14:19:57 -0700
changeset 9949 254133001f4f
parent 7731 67b5ca303a81
child 10654 0148f9c47331
permissions -rw-r--r--
Fix strict aliasing warning.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2959
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     2
/*
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     3
 * Copyright (c) 2005,2006,2007 INRIA
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     4
 *
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     7
 * published by the Free Software Foundation;
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     8
 *
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    12
 * GNU General Public License for more details.
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    13
 *
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    14
 * You should have received a copy of the GNU General Public License
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    15
 * along with this program; if not, write to the Free Software
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    17
 *
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
5c620cfd9492 add missing license statement.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2594
diff changeset
    19
 */
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    20
#ifndef TRACED_VALUE_H
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    21
#define TRACED_VALUE_H
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    22
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    23
#include "traced-callback.h"
2462
93028d4474ba add an IntegerTraceSource which behaves just like an Integer.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1419
diff changeset
    24
#include "integer.h"
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    25
#include "uinteger.h"
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    26
#include "boolean.h"
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    27
#include "double.h"
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    28
#include "enum.h"
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    29
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
    30
#define TRACED_VALUE_DEBUG(x)
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    31
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    32
namespace ns3 {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    33
2588
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    34
/**
3182
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 2972
diff changeset
    35
 * \ingroup core
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 2972
diff changeset
    36
 * \defgroup tracing Tracing
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 2972
diff changeset
    37
 */
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 2972
diff changeset
    38
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 2972
diff changeset
    39
/**
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 2972
diff changeset
    40
 * \ingroup tracing
61fe7fe81ebd Doxygen organization
Tom Henderson <tomh@tomh.org>
parents: 2972
diff changeset
    41
 *
2588
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    42
 * \brief trace classes with value semantics
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    43
 *
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    44
 * If you want to trace the change of value of a class or
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    45
 * primitive type which have value semantics (they _must_
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    46
 * support operator !=), you can wrap them in an instance of
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    47
 * this template: this instance will behave just like
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    48
 * the original class (if it did not export any special method),
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    49
 * and will define Connect/DisconnectWithoutContext methods to work
3190
51fe9001a679 add some doxygen, remove a couple of XXX
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3182
diff changeset
    50
 * with ns3::MakeTraceSourceAccessor.
2588
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    51
 */
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    52
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    53
class TracedValue
2462
93028d4474ba add an IntegerTraceSource which behaves just like an Integer.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1419
diff changeset
    54
{
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    55
public:
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    56
  TracedValue ()
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    57
    : m_v () {}
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    58
  TracedValue (const TracedValue &o)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    59
    : m_v (o.m_v) {}
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    60
  TracedValue (const T &v)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    61
    : m_v (v) {}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    62
  operator T () const {
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    63
    return m_v;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    64
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    65
  TracedValue &operator = (const TracedValue &o) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
    66
    TRACED_VALUE_DEBUG ("x=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    67
    Set (o.m_v);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    68
    return *this;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    69
  }
6490
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    70
  template <typename U>
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    71
  TracedValue (const TracedValue<U> &other)
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    72
    : m_v (other.m_v)
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    73
  {}
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    74
  template <typename U>
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    75
  TracedValue (const U &other)
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    76
    : m_v ((T)other)
34e72f4cdd87 bug 956: workaround compiler bug
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3190
diff changeset
    77
  {}
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    78
  void ConnectWithoutContext (const CallbackBase &cb) {
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    79
    m_cb.ConnectWithoutContext (cb);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    80
  }
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    81
  void Connect (const CallbackBase &cb, std::string path) {
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    82
    m_cb.Connect (cb, path);
2531
b451b5fc8b57 implement context-based trace connection
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2512
diff changeset
    83
  }
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    84
  void DisconnectWithoutContext (const CallbackBase &cb) {
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    85
    m_cb.DisconnectWithoutContext (cb);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    86
  }
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    87
  void Disconnect (const CallbackBase &cb, std::string path) {
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    88
    m_cb.Disconnect (cb, path);
2569
d5cff2968984 make Disconnect work with trace contexts.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2531
diff changeset
    89
  }
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    90
  void Set (const T &v) {
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    91
    if (m_v != v)
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    92
      {
7169
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 6821
diff changeset
    93
        m_cb (m_v, v);
358f71a624d8 core coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents: 6821
diff changeset
    94
        m_v = v;
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    95
      }
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    96
  }
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    97
  T Get (void) const {
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    98
    return m_v;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    99
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   100
  TracedValue &operator++ () {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   101
    TRACED_VALUE_DEBUG ("++x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   102
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   103
    ++tmp;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   104
    Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   105
    return *this;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   106
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   107
  TracedValue &operator-- () {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   108
    TRACED_VALUE_DEBUG ("--x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   109
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   110
    --tmp;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   111
    Set (tmp);
2462
93028d4474ba add an IntegerTraceSource which behaves just like an Integer.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1419
diff changeset
   112
    return *this;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   113
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   114
  TracedValue operator++ (int) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   115
    TRACED_VALUE_DEBUG ("x++");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   116
    TracedValue old (*this);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   117
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   118
    tmp++;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   119
    Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   120
    return old;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   121
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   122
  TracedValue operator-- (int) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   123
    TRACED_VALUE_DEBUG ("x--");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   124
    TracedValue old (*this);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   125
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   126
    tmp--;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   127
    Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   128
    return old;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   129
  }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   130
private:
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   131
  T m_v;
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   132
  TracedCallback<T,T> m_cb;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   133
};
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   134
2903
ea31499ecbfb Add support for TCP cwnd tracing
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2594
diff changeset
   135
template <typename T>
ea31499ecbfb Add support for TCP cwnd tracing
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2594
diff changeset
   136
std::ostream& operator << (std::ostream& os, const TracedValue<T>& rhs)
ea31499ecbfb Add support for TCP cwnd tracing
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2594
diff changeset
   137
{
7256
b04ba6772f8c rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents: 7169
diff changeset
   138
  return os<<rhs.Get ();
2903
ea31499ecbfb Add support for TCP cwnd tracing
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2594
diff changeset
   139
}
ea31499ecbfb Add support for TCP cwnd tracing
Raj Bhattacharjea <raj.b@gatech.edu>
parents: 2594
diff changeset
   140
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   141
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   142
bool operator == (const TracedValue<T> &lhs, const TracedValue<U> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   143
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   144
  TRACED_VALUE_DEBUG ("x==x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   145
  return lhs.Get () == rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   146
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   147
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   148
bool operator == (const TracedValue<T> &lhs, const U &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   149
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   150
  TRACED_VALUE_DEBUG ("x==");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   151
  return lhs.Get () == rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   152
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   153
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   154
bool operator == (const U &lhs, const TracedValue<T> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   155
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   156
  TRACED_VALUE_DEBUG ("==x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   157
  return lhs == rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   158
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   159
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   160
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   161
bool operator != (const TracedValue<T> &lhs, const TracedValue<U> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   162
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   163
  TRACED_VALUE_DEBUG ("x!=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   164
  return lhs.Get () != rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   165
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   166
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   167
bool operator != (const TracedValue<T> &lhs, const U &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   168
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   169
  TRACED_VALUE_DEBUG ("x!=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   170
  return lhs.Get () != rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   171
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   172
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   173
bool operator != (const U &lhs, const TracedValue<T> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   174
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   175
  TRACED_VALUE_DEBUG ("!=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   176
  return lhs != rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   177
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   178
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   179
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   180
bool operator <= (const TracedValue<T> &lhs, const TracedValue<U> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   181
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   182
  TRACED_VALUE_DEBUG ("x<=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   183
  return lhs.Get () <= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   184
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   185
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   186
bool operator <= (const TracedValue<T> &lhs, const U &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   187
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   188
  TRACED_VALUE_DEBUG ("x<=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   189
  return lhs.Get () <= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   190
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   191
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   192
bool operator <= (const U &lhs, const TracedValue<T> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   193
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   194
  TRACED_VALUE_DEBUG ("<=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   195
  return lhs <= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   196
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   197
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   198
bool operator >= (const TracedValue<T> &lhs, const TracedValue<U> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   199
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   200
  TRACED_VALUE_DEBUG ("x>=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   201
  return lhs.Get () >= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   202
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   203
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   204
bool operator >= (const TracedValue<T> &lhs, const U &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   205
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   206
  TRACED_VALUE_DEBUG ("x>=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   207
  return lhs.Get () >= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   208
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   209
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   210
bool operator >= (const U &lhs, const TracedValue<T> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   211
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   212
  TRACED_VALUE_DEBUG (">=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   213
  return lhs >= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   214
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   215
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   216
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   217
bool operator < (const TracedValue<T> &lhs, const TracedValue<U> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   218
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   219
  TRACED_VALUE_DEBUG ("x<x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   220
  return lhs.Get () < rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   221
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   222
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   223
bool operator < (const TracedValue<T> &lhs, const U &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   224
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   225
  TRACED_VALUE_DEBUG ("x<");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   226
  return lhs.Get () < rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   227
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   228
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   229
bool operator < (const U &lhs, const TracedValue<T> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   230
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   231
  TRACED_VALUE_DEBUG ("<x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   232
  return lhs < rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   233
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   234
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   235
bool operator > (const TracedValue<T> &lhs, const TracedValue<U> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   236
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   237
  TRACED_VALUE_DEBUG ("x>x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   238
  return lhs.Get () > rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   239
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   240
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   241
bool operator > (const TracedValue<T> &lhs, const U &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   242
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   243
  TRACED_VALUE_DEBUG ("x>");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   244
  return lhs.Get () > rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   245
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   246
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   247
bool operator > (const U &lhs, const TracedValue<T> &rhs)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   248
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   249
  TRACED_VALUE_DEBUG (">x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   250
  return lhs > rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   251
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   252
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   253
TracedValue<T> &operator += (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   254
  TRACED_VALUE_DEBUG ("x+=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   255
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   256
  tmp += rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   257
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   258
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   259
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   260
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   261
TracedValue<T> &operator -= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   262
  TRACED_VALUE_DEBUG ("x-=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   263
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   264
  tmp -= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   265
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   266
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   267
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   268
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   269
TracedValue<T> &operator *= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   270
  TRACED_VALUE_DEBUG ("x*=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   271
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   272
  tmp *= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   273
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   274
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   275
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   276
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   277
TracedValue<T> &operator /= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   278
  TRACED_VALUE_DEBUG ("x/=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   279
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   280
  tmp /= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   281
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   282
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   283
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   284
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   285
TracedValue<T> &operator %= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   286
  TRACED_VALUE_DEBUG ("x%=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   287
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   288
  tmp %= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   289
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   290
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   291
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   292
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   293
TracedValue<T> &operator <<= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   294
  TRACED_VALUE_DEBUG ("x<<=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   295
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   296
  tmp <<= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   297
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   298
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   299
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   300
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   301
TracedValue<T> &operator >>= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   302
  TRACED_VALUE_DEBUG ("x>>=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   303
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   304
  tmp >>= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   305
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   306
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   307
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   308
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   309
TracedValue<T> &operator &= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   310
  TRACED_VALUE_DEBUG ("x&=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   311
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   312
  tmp &= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   313
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   314
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   315
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   316
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   317
TracedValue<T> &operator |= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   318
  TRACED_VALUE_DEBUG ("x|=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   319
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   320
  tmp |= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   321
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   322
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   323
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   324
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   325
TracedValue<T> &operator ^= (TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   326
  TRACED_VALUE_DEBUG ("x^=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   327
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   328
  tmp ^= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   329
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   330
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   331
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   332
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   333
TracedValue<T> operator + (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   334
  TRACED_VALUE_DEBUG ("x+x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   335
  return TracedValue<T> (lhs.Get () + rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   336
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   337
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   338
TracedValue<T> operator + (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   339
  TRACED_VALUE_DEBUG ("x+");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   340
  return TracedValue<T> (lhs.Get () + rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   341
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   342
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   343
TracedValue<T> operator + (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   344
  TRACED_VALUE_DEBUG ("+x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   345
  return TracedValue<T> (lhs + rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   346
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   347
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   348
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   349
TracedValue<T> operator - (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   350
  TRACED_VALUE_DEBUG ("x-x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   351
  return TracedValue<T> (lhs.Get () - rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   352
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   353
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   354
TracedValue<T> operator - (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   355
  TRACED_VALUE_DEBUG ("x-");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   356
  return TracedValue<T> (lhs.Get () - rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   357
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   358
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   359
TracedValue<T> operator - (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   360
  TRACED_VALUE_DEBUG ("-x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   361
  return TracedValue<T> (lhs - rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   362
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   363
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   364
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   365
TracedValue<T> operator * (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   366
  TRACED_VALUE_DEBUG ("x*x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   367
  return TracedValue<T> (lhs.Get () * rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   368
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   369
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   370
TracedValue<T> operator * (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   371
  TRACED_VALUE_DEBUG ("x*");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   372
  return TracedValue<T> (lhs.Get () * rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   373
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   374
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   375
TracedValue<T> operator * (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   376
  TRACED_VALUE_DEBUG ("*x");
7731
67b5ca303a81 bug 1364: Typo in trace-value.h
Mathieu Lacage <mathieu.lacage@gmail.com>
parents: 7256
diff changeset
   377
  return TracedValue<T> (lhs * rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   378
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   379
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   380
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   381
TracedValue<T> operator / (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   382
  TRACED_VALUE_DEBUG ("x/x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   383
  return TracedValue<T> (lhs.Get () / rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   384
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   385
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   386
TracedValue<T> operator / (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   387
  TRACED_VALUE_DEBUG ("x/");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   388
  return TracedValue<T> (lhs.Get () / rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   389
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   390
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   391
TracedValue<T> operator / (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   392
  TRACED_VALUE_DEBUG ("/x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   393
  return TracedValue<T> (lhs / rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   394
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   395
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   396
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   397
TracedValue<T> operator % (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   398
  TRACED_VALUE_DEBUG ("x%x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   399
  return TracedValue<T> (lhs.Get () % rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   400
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   401
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   402
TracedValue<T> operator % (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   403
  TRACED_VALUE_DEBUG ("x%");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   404
  return TracedValue<T> (lhs.Get () % rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   405
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   406
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   407
TracedValue<T> operator % (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   408
  TRACED_VALUE_DEBUG ("%x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   409
  return TracedValue<T> (lhs % rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   410
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   411
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   412
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   413
TracedValue<T> operator ^ (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   414
  TRACED_VALUE_DEBUG ("x^x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   415
  return TracedValue<T> (lhs.Get () ^ rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   416
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   417
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   418
TracedValue<T> operator ^ (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   419
  TRACED_VALUE_DEBUG ("x^");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   420
  return TracedValue<T> (lhs.Get () ^ rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   421
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   422
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   423
TracedValue<T> operator ^ (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   424
  TRACED_VALUE_DEBUG ("^x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   425
  return TracedValue<T> (lhs ^ rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   426
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   427
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   428
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   429
TracedValue<T> operator | (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   430
  TRACED_VALUE_DEBUG ("x|x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   431
  return TracedValue<T> (lhs.Get () | rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   432
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   433
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   434
TracedValue<T> operator | (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   435
  TRACED_VALUE_DEBUG ("x|");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   436
  return TracedValue<T> (lhs.Get () | rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   437
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   438
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   439
TracedValue<T> operator | (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   440
  TRACED_VALUE_DEBUG ("|x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   441
  return TracedValue<T> (lhs | rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   442
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   443
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   444
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   445
TracedValue<T> operator & (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   446
  TRACED_VALUE_DEBUG ("x&x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   447
  return TracedValue<T> (lhs.Get () & rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   448
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   449
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   450
TracedValue<T> operator & (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   451
  TRACED_VALUE_DEBUG ("x&");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   452
  return TracedValue<T> (lhs.Get () & rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   453
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   454
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   455
TracedValue<T> operator & (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   456
  TRACED_VALUE_DEBUG ("&x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   457
  return TracedValue<T> (lhs & rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   458
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   459
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   460
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   461
TracedValue<T> operator << (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   462
  TRACED_VALUE_DEBUG ("x<<x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   463
  return TracedValue<T> (lhs.Get () << rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   464
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   465
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   466
TracedValue<T> operator << (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   467
  TRACED_VALUE_DEBUG ("x<<");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   468
  return TracedValue<T> (lhs.Get () << rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   469
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   470
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   471
TracedValue<T> operator << (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   472
  TRACED_VALUE_DEBUG ("<<x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   473
  return TracedValue<T> (lhs << rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   474
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   475
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   476
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   477
TracedValue<T> operator >> (const TracedValue<T> &lhs, const TracedValue<U> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   478
  TRACED_VALUE_DEBUG ("x>>x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   479
  return TracedValue<T> (lhs.Get () >> rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   480
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   481
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   482
TracedValue<T> operator >> (const TracedValue<T> &lhs, const U &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   483
  TRACED_VALUE_DEBUG ("x>>");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   484
  return TracedValue<T> (lhs.Get () >> rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   485
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   486
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   487
TracedValue<T> operator >> (const U &lhs, const TracedValue<T> &rhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   488
  TRACED_VALUE_DEBUG (">>x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   489
  return TracedValue<T> (lhs >> rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   490
}
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   491
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   492
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   493
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   494
TracedValue<T> operator + (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   495
  TRACED_VALUE_DEBUG ("(+x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   496
  return TracedValue<T> (+lhs.Get ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   497
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   498
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   499
TracedValue<T> operator - (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   500
  TRACED_VALUE_DEBUG ("(-x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   501
  return TracedValue<T> (-lhs.Get ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   502
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   503
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   504
TracedValue<T> operator ~ (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   505
  TRACED_VALUE_DEBUG ("(~x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   506
  return TracedValue<T> (~lhs.Get ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   507
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   508
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   509
TracedValue<T> operator ! (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   510
  TRACED_VALUE_DEBUG ("(!x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   511
  return TracedValue<T> (!lhs.Get ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   512
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   513
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   514
2462
93028d4474ba add an IntegerTraceSource which behaves just like an Integer.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1419
diff changeset
   515
} // namespace ns3
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   516
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   517
#endif /* TRACED_VALUE_H */