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