src/core/traced-value.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 17 Apr 2008 13:42:25 -0700
changeset 2965 4b28e9740e3b
parent 2959 5c620cfd9492
child 2972 d76553495b91
permissions -rw-r--r--
get rid of Attribute class. Use AttributeValue subclasses directly.
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
/**
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    35
 * \brief trace classes with value semantics
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    36
 *
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    37
 * 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
    38
 * primitive type which have value semantics (they _must_
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    39
 * support operator !=), you can wrap them in an instance of
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    40
 * this template: this instance will behave just like
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    41
 * 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
    42
 * and will define Connect/DisconnectWithoutContext methods to work
2588
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    43
 * with an ns3::TraceSourceAccessor.
c6722f33bb59 dox doc
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2569
diff changeset
    44
 */
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    45
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    46
class TracedValue
2462
93028d4474ba add an IntegerTraceSource which behaves just like an Integer.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1419
diff changeset
    47
{
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    48
public:
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    49
  TracedValue ()
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    50
    : m_v () {}
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    51
  TracedValue (const TracedValue &o)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    52
    : m_v (o.m_v) {}
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    53
  TracedValue (const T &v)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    54
    : m_v (v) {}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    55
  operator T () const {
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    56
    return m_v;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    57
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
    58
  TracedValue &operator = (const TracedValue &o) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
    59
    TRACED_VALUE_DEBUG ("x=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    60
    Set (o.m_v);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    61
    return *this;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    62
  }
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    63
  TracedValue (const IntegerValue &value) 
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    64
    : m_v (value.Get ()) {}
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    65
  operator IntegerValue () const {
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    66
    return IntegerValue (m_v);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    67
  }
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    68
  TracedValue (const UintegerValue &value)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    69
    : m_v (value.Get ()) {}
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    70
  operator UintegerValue () const {
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    71
    return UintegerValue (m_v);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    72
  }
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    73
  TracedValue (const BooleanValue &value)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    74
    : m_v (value.Get ()) {}
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    75
  operator BooleanValue () const {
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    76
    return BooleanValue (m_v);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    77
  }
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    78
  TracedValue (const EnumValue &value)
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    79
    : m_v (value.Get ()) {}
2965
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    80
  operator EnumValue () const {
4b28e9740e3b get rid of Attribute class. Use AttributeValue subclasses directly.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2959
diff changeset
    81
    return EnumValue (m_v);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    82
  }
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    83
  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
    84
    m_cb.ConnectWithoutContext (cb);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    85
  }
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    86
  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
    87
    m_cb.Connect (cb, path);
2531
b451b5fc8b57 implement context-based trace connection
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2512
diff changeset
    88
  }
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    89
  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
    90
    m_cb.DisconnectWithoutContext (cb);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    91
  }
2594
a8f89acd17a1 Config::Connect -> Config::ConnectWithoutContext && Config::ConnectWithContext -> Config::Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2588
diff changeset
    92
  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
    93
    m_cb.Disconnect (cb, path);
2569
d5cff2968984 make Disconnect work with trace contexts.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2531
diff changeset
    94
  }
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    95
  void Set (const T &v) {
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    96
    if (m_v != v)
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    97
      {
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    98
	m_cb (m_v, v);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
    99
	m_v = v;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   100
      }
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   101
  }
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   102
  T Get (void) const {
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   103
    return m_v;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   104
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   105
  TracedValue &operator++ () {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   106
    TRACED_VALUE_DEBUG ("++x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   107
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   108
    ++tmp;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   109
    Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   110
    return *this;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   111
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   112
  TracedValue &operator-- () {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   113
    TRACED_VALUE_DEBUG ("--x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   114
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   115
    --tmp;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   116
    Set (tmp);
2462
93028d4474ba add an IntegerTraceSource which behaves just like an Integer.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1419
diff changeset
   117
    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
   118
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   119
  TracedValue operator++ (int) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   120
    TRACED_VALUE_DEBUG ("x++");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   121
    TracedValue old (*this);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   122
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   123
    tmp++;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   124
    Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   125
    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
   126
  }
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   127
  TracedValue operator-- (int) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   128
    TRACED_VALUE_DEBUG ("x--");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   129
    TracedValue old (*this);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   130
    T tmp = Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   131
    tmp--;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   132
    Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   133
    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
   134
  }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   135
private:
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   136
  T m_v;
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   137
  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
   138
};
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   139
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   140
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   141
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
   142
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   143
  TRACED_VALUE_DEBUG ("x==x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   144
  return lhs.Get () == rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   145
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   146
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   147
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
   148
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   149
  TRACED_VALUE_DEBUG ("x==");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   150
  return lhs.Get () == rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   151
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   152
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   153
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
   154
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   155
  TRACED_VALUE_DEBUG ("==x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   156
  return lhs == rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   157
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   160
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
   161
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   162
  TRACED_VALUE_DEBUG ("x!=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   163
  return lhs.Get () != rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   164
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   165
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   166
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
   167
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   168
  TRACED_VALUE_DEBUG ("x!=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   169
  return lhs.Get () != rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   170
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   171
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   172
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
   173
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   174
  TRACED_VALUE_DEBUG ("!=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   175
  return lhs != rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   176
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   179
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
   180
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   181
  TRACED_VALUE_DEBUG ("x<=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   182
  return lhs.Get () <= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   183
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   184
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   185
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
   186
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   187
  TRACED_VALUE_DEBUG ("x<=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   188
  return lhs.Get () <= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   189
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   190
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   191
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
   192
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   193
  TRACED_VALUE_DEBUG ("<=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   194
  return lhs <= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   195
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   196
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   197
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
   198
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   199
  TRACED_VALUE_DEBUG ("x>=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   200
  return lhs.Get () >= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   201
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   202
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   203
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
   204
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   205
  TRACED_VALUE_DEBUG ("x>=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   206
  return lhs.Get () >= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   207
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   208
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   209
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
   210
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   211
  TRACED_VALUE_DEBUG (">=x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   212
  return lhs >= rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   213
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   216
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
   217
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   218
  TRACED_VALUE_DEBUG ("x<x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   219
  return lhs.Get () < rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   220
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   221
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   222
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
   223
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   224
  TRACED_VALUE_DEBUG ("x<");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   225
  return lhs.Get () < rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   226
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   227
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   228
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
   229
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   230
  TRACED_VALUE_DEBUG ("<x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   231
  return lhs < rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   232
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   233
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   234
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
   235
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   236
  TRACED_VALUE_DEBUG ("x>x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   237
  return lhs.Get () > rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   238
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   239
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   240
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
   241
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   242
  TRACED_VALUE_DEBUG ("x>");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   243
  return lhs.Get () > rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   244
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   245
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   246
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
   247
{
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   248
  TRACED_VALUE_DEBUG (">x");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   249
  return lhs > rhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   250
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   251
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   252
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
   253
  TRACED_VALUE_DEBUG ("x+=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   254
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   255
  tmp += rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   256
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   257
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   258
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   259
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   260
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
   261
  TRACED_VALUE_DEBUG ("x-=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   262
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   263
  tmp -= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   264
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   265
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   266
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   267
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   268
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
   269
  TRACED_VALUE_DEBUG ("x*=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   270
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   271
  tmp *= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   272
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   273
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   274
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   275
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   276
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
   277
  TRACED_VALUE_DEBUG ("x/=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   278
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   279
  tmp /= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   280
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   281
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   282
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   283
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   284
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
   285
  TRACED_VALUE_DEBUG ("x%=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   286
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   287
  tmp %= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   288
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   289
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   290
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   291
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   292
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
   293
  TRACED_VALUE_DEBUG ("x<<=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   294
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   295
  tmp <<= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   296
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   297
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   298
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   299
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   300
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
   301
  TRACED_VALUE_DEBUG ("x>>=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   302
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   303
  tmp >>= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   304
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   305
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   306
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   307
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   308
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
   309
  TRACED_VALUE_DEBUG ("x&=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   310
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   311
  tmp &= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   312
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   313
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   314
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   315
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   316
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
   317
  TRACED_VALUE_DEBUG ("x|=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   318
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   319
  tmp |= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   320
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   321
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   322
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   323
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   324
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
   325
  TRACED_VALUE_DEBUG ("x^=");
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   326
  T tmp = lhs.Get ();
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   327
  tmp ^= rhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   328
  lhs.Set (tmp);
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   329
  return lhs;
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   330
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   331
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   332
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
   333
  TRACED_VALUE_DEBUG ("x+x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   334
  return TracedValue<T> (lhs.Get () + rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   335
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   336
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   337
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
   338
  TRACED_VALUE_DEBUG ("x+");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   339
  return TracedValue<T> (lhs.Get () + rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   340
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   341
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   342
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
   343
  TRACED_VALUE_DEBUG ("+x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   344
  return TracedValue<T> (lhs + rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   345
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   348
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
   349
  TRACED_VALUE_DEBUG ("x-x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   350
  return TracedValue<T> (lhs.Get () - rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   351
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   352
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   353
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
   354
  TRACED_VALUE_DEBUG ("x-");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   355
  return TracedValue<T> (lhs.Get () - rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   356
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   357
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   358
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
   359
  TRACED_VALUE_DEBUG ("-x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   360
  return TracedValue<T> (lhs - rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   361
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   364
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
   365
  TRACED_VALUE_DEBUG ("x*x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   366
  return TracedValue<T> (lhs.Get () * rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   367
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   368
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   369
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
   370
  TRACED_VALUE_DEBUG ("x*");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   371
  return TracedValue<T> (lhs.Get () * rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   372
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   373
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   374
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
   375
  TRACED_VALUE_DEBUG ("*x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   376
  return TracedValue<T> (lhs - rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   377
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   380
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
   381
  TRACED_VALUE_DEBUG ("x/x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   382
  return TracedValue<T> (lhs.Get () / rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   383
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   384
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   385
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
   386
  TRACED_VALUE_DEBUG ("x/");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   387
  return TracedValue<T> (lhs.Get () / rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   388
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   389
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   390
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
   391
  TRACED_VALUE_DEBUG ("/x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   392
  return TracedValue<T> (lhs / rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   393
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   396
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
   397
  TRACED_VALUE_DEBUG ("x%x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   398
  return TracedValue<T> (lhs.Get () % rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   399
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   400
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   401
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
   402
  TRACED_VALUE_DEBUG ("x%");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   403
  return TracedValue<T> (lhs.Get () % rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   404
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   405
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   406
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
   407
  TRACED_VALUE_DEBUG ("%x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   408
  return TracedValue<T> (lhs % rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   409
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   412
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
   413
  TRACED_VALUE_DEBUG ("x^x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   414
  return TracedValue<T> (lhs.Get () ^ rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   415
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   416
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   417
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
   418
  TRACED_VALUE_DEBUG ("x^");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   419
  return TracedValue<T> (lhs.Get () ^ rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   420
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   421
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   422
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
   423
  TRACED_VALUE_DEBUG ("^x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   424
  return TracedValue<T> (lhs ^ rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   425
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   428
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
   429
  TRACED_VALUE_DEBUG ("x|x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   430
  return TracedValue<T> (lhs.Get () | rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   431
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   432
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   433
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
   434
  TRACED_VALUE_DEBUG ("x|");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   435
  return TracedValue<T> (lhs.Get () | rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   436
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   437
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   438
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
   439
  TRACED_VALUE_DEBUG ("|x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   440
  return TracedValue<T> (lhs | rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   441
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   444
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
   445
  TRACED_VALUE_DEBUG ("x&x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   446
  return TracedValue<T> (lhs.Get () & rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   447
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   448
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   449
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
   450
  TRACED_VALUE_DEBUG ("x&");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   451
  return TracedValue<T> (lhs.Get () & rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   452
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   453
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   454
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
   455
  TRACED_VALUE_DEBUG ("&x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   456
  return TracedValue<T> (lhs & rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   457
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   460
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
   461
  TRACED_VALUE_DEBUG ("x<<x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   462
  return TracedValue<T> (lhs.Get () << rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   463
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   464
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   465
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
   466
  TRACED_VALUE_DEBUG ("x<<");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   467
  return TracedValue<T> (lhs.Get () << rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   468
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   469
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   470
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
   471
  TRACED_VALUE_DEBUG ("<<x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   472
  return TracedValue<T> (lhs << rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   473
}
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
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   476
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
   477
  TRACED_VALUE_DEBUG ("x>>x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   478
  return TracedValue<T> (lhs.Get () >> rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   479
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   480
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   481
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
   482
  TRACED_VALUE_DEBUG ("x>>");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   483
  return TracedValue<T> (lhs.Get () >> rhs);
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   484
}
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   485
template <typename T, typename U>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   486
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
   487
  TRACED_VALUE_DEBUG (">>x");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   488
  return TracedValue<T> (lhs >> rhs.Get ());
2468
23b763621698 replace IntegerTraceSource with ValueTraceSource
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2466
diff changeset
   489
}
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   490
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
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   493
TracedValue<T> operator + (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   494
  TRACED_VALUE_DEBUG ("(+x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   495
  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
   496
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   497
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   498
TracedValue<T> operator - (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   499
  TRACED_VALUE_DEBUG ("(-x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   500
  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
   501
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   502
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   503
TracedValue<T> operator ~ (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   504
  TRACED_VALUE_DEBUG ("(~x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   505
  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
   506
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   507
template <typename T>
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   508
TracedValue<T> operator ! (const TracedValue<T> &lhs) {
2512
347c418403d4 avoid macro namespace polution.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2482
diff changeset
   509
  TRACED_VALUE_DEBUG ("(!x)");
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   510
  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
   511
}
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
2462
93028d4474ba add an IntegerTraceSource which behaves just like an Integer.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1419
diff changeset
   514
} // 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
   515
2482
adbc284a5849 EventTraceSource -> TracedCallback, ValueTraceSource -> TracedValue.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2468
diff changeset
   516
#endif /* TRACED_VALUE_H */