src/core/composite-trace-resolver.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sun, 12 Aug 2007 22:24:45 +0200
changeset 1354 256446080d34
parent 1353 0dd2acd3418f
child 1355 6289ac826830
permissions -rw-r--r--
remove useless code
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     2
/*
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     3
 * Copyright (c) 2007 INRIA
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     4
 * All rights reserved.
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     5
 *
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License version 2 as
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     8
 * published by the Free Software Foundation;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     9
 *
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    13
 * GNU General Public License for more details.
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    14
 *
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    16
 * along with this program; if not, write to the Free Software
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    17
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    18
 *
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    19
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    20
 */
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    21
#include "composite-trace-resolver.h"
1335
d0e45d84f9c6 fix includes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1334
diff changeset
    22
#include "debug.h"
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
    23
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
    24
NS_DEBUG_COMPONENT_DEFINE ("CompositeTraceResolver");
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    25
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    26
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
    27
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
    28
CompositeTraceResolver::CompositeTraceResolver ()
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    29
{}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    30
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    31
CompositeTraceResolver::~CompositeTraceResolver ()
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    32
{
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    33
  for (TraceItems::iterator i = m_items.begin (); i != m_items.end (); i++)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    34
    {
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    35
      delete *i;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    36
    }
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    37
  m_items.clear ();
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    38
}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    39
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    40
void 
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    41
CompositeTraceResolver::AddItem (CompositeItem *item)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    42
{
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    43
  m_items.push_back (item);
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    44
}
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    45
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    46
void 
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
    47
CompositeTraceResolver::Add (std::string name, 
1333
c0d66de933e9 convert TraceResolver * to Ptr<TraceResolver>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1329
diff changeset
    48
                             Callback<Ptr<TraceResolver> > createResolver)
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
    49
{
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    50
  class MakerCompositeItem : public CompositeItem
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    51
  {
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    52
  public:
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    53
    virtual void Connect (std::string subpath, const CallbackBase &cb, const TraceContext &context)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    54
    {maker ()->Connect (subpath, cb, context);}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    55
    virtual void Disconnect (std::string subpath, const CallbackBase &cb)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    56
    {maker ()->Disconnect (subpath, cb);}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    57
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    58
    Callback<Ptr<TraceResolver> > maker;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    59
  } *item = new MakerCompositeItem ();
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    60
  item->name = name;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    61
  item->context = TraceContext ();
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    62
  item->maker = createResolver;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    63
  AddItem (item);
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
    64
}
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
    65
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
    66
void 
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    67
CompositeTraceResolver::Add (std::string name,
1353
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    68
                             TraceSource &trace)
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    69
{
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    70
  DoAddSource (name, trace, TraceContext ());
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    71
}
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    72
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    73
void 
1353
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    74
CompositeTraceResolver::DoAddSource (std::string name,
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    75
                                     TraceSource &trace, 
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    76
                                     const TraceContext &context)
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    77
{
1353
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    78
  class SourceCompositeItem : public CompositeItem
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    79
  {
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    80
  public:
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    81
    virtual void Connect (std::string subpath, const CallbackBase &cb, const TraceContext &context)
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    82
    {if (subpath == "") {trace->AddCallback (cb, context);}}
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    83
    virtual void Disconnect (std::string subpath, const CallbackBase &cb)
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    84
    {if (subpath == "") {trace->RemoveCallback (cb);}}
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    85
1353
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    86
    TraceSource *trace;
0dd2acd3418f replace CallbackTraceSourceBase with TraceSource base class
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1352
diff changeset
    87
  } *item = new SourceCompositeItem ();
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    88
  item->name = name;
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    89
  item->context = context;
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    90
  item->trace = &trace;
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    91
  AddItem (item);
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    92
}
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    93
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    94
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    95
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    96
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
    97
void 
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    98
CompositeTraceResolver::AddChild (std::string name, Ptr<Object> child)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
    99
{
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   100
  DoAddChild (name, child, TraceContext ());
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   101
}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   102
void 
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   103
CompositeTraceResolver::DoAddChild (std::string name, Ptr<Object> child, const TraceContext &context)
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   104
{
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   105
  class ChildCompositeItem : public CompositeItem
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   106
  {
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   107
  public:
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   108
    virtual void Connect (std::string subpath, const CallbackBase &cb, const TraceContext &context)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   109
    {child->TraceConnect (subpath, cb, context);}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   110
    virtual void Disconnect (std::string subpath, const CallbackBase &cb)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   111
    {child->TraceDisconnect (subpath, cb);}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   112
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   113
    Ptr<Object> child;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   114
  } *item = new ChildCompositeItem ();
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   115
  item->name = name;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   116
  item->context = context;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   117
  item->child = child;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   118
  AddItem (item);
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   119
}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   120
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   121
void
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   122
CompositeTraceResolver::SetParent (Ptr<TraceResolver> resolver)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   123
{
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   124
  m_parent = resolver;
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
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   126
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   127
void 
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   128
CompositeTraceResolver::Connect (std::string path, CallbackBase const &cb, const TraceContext &context)
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   129
{
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   130
  NS_DEBUG ("connect path="<<path);
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   131
  DoRecursiveOperation (path, cb, context, CONNECT);
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   132
}
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   133
void 
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   134
CompositeTraceResolver::DoRecursiveOperation (std::string path, 
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   135
                                              const CallbackBase  &cb, 
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   136
                                              const TraceContext &context,
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   137
                                              enum Operation op)
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   138
{
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   139
  if (path == "")
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   140
    {
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   141
      return;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   142
    }
1328
03f1081c21a7 override Connect from ArrayTraceResolver
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1327
diff changeset
   143
  std::string id = GetElement (path);
03f1081c21a7 override Connect from ArrayTraceResolver
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1327
diff changeset
   144
  std::string subpath = GetSubpath (path);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   145
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   146
  if (id == "*")
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   147
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   148
      for (TraceItems::const_iterator i = m_items.begin (); i != m_items.end (); i++)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   149
	{
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   150
          OperationOne (subpath, i, cb, context, op);
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   151
        }
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   152
      DoRecursiveOperationForParent (path, cb, context, op);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   153
      return;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   154
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   155
  std::string::size_type start, end;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   156
  start = id.find_first_of ("(", 0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   157
  end = id.find_first_of (")", 0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   158
  if (start != 0 || end != (id.size ()-1))
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   159
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   160
      for (TraceItems::const_iterator i = m_items.begin (); i != m_items.end (); i++)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   161
	{
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   162
	  if ((*i)->name == id)
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   163
	    {
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   164
              OperationOne (subpath, i, cb, context, op);
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   165
              DoRecursiveOperationForParent (path, cb, context, op);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   166
              return;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   167
	    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   168
	}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   169
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   170
  std::list<std::string> names;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   171
  std::string alternatives = std::string (id, start+1, end-1);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   172
  std::string::size_type next_pos, cur_pos;
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   173
  next_pos = 0;
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   174
  cur_pos = 0;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   175
  while (true)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   176
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   177
      std::string element;
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   178
      next_pos = alternatives.find ("|", cur_pos);
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   179
      if (next_pos == std::string::npos)
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   180
	{
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   181
	  element = std::string (alternatives, cur_pos, alternatives.size ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   182
	  names.push_back (element);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   183
	  break;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   184
	}
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   185
      element = std::string (alternatives, cur_pos, next_pos);
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   186
      names.push_back (element);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   187
      cur_pos = next_pos + 1;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   188
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   189
  for (std::list<std::string>::const_iterator i = names.begin (); i != names.end (); i++)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   190
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   191
      for (TraceItems::const_iterator j = m_items.begin (); j != m_items.end (); j++)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   192
	{
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   193
	  if ((*j)->name == *i)
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   194
	    {
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   195
              OperationOne (subpath, j, cb, context, op);
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   196
	      break;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   197
	    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   198
	}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   199
    }
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   200
  DoRecursiveOperationForParent (path, cb, context, op);
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   201
}
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   202
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   203
void
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   204
CompositeTraceResolver::DoRecursiveOperationForParent (std::string path, 
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   205
                                                       const CallbackBase &cb, 
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   206
                                                       const TraceContext &context, 
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   207
                                                       enum Operation op)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   208
{
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   209
  if (m_parent == 0)
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   210
    {
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   211
      return;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   212
    }
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   213
  switch (op) {
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   214
  case CONNECT:
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   215
    m_parent->Connect (path, cb, context);
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   216
    break;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   217
  case DISCONNECT:
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   218
    m_parent->Disconnect (path, cb);
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   219
    break;
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   220
  }
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   221
}
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   222
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   223
void 
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   224
CompositeTraceResolver::OperationOne (std::string subpath, 
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   225
                                      TraceItems::const_iterator i,
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   226
                                      const CallbackBase &cb,
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   227
                                      const TraceContext &context,
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   228
                                      enum Operation op)
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   229
{
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   230
  switch (op) {
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   231
  case CONNECT: {
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   232
    NS_DEBUG ("connect to path="<<subpath<<" name="<<(*i)->name);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   233
    TraceContext ctx = context;
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   234
    ctx.Add ((*i)->context);
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   235
    (*i)->Connect (subpath, cb, ctx);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   236
    } break;
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   237
  case DISCONNECT:
1352
34176d861b6e add some debugging for disconnect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1345
diff changeset
   238
    NS_DEBUG ("disconnect from path="<<subpath<<" name="<<(*i)->name);
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   239
    (*i)->Disconnect (subpath, cb);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   240
    break;
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   241
  }
1328
03f1081c21a7 override Connect from ArrayTraceResolver
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1327
diff changeset
   242
}
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   243
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   244
void 
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   245
CompositeTraceResolver::Disconnect (std::string path, CallbackBase const &cb)
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   246
{
1352
34176d861b6e add some debugging for disconnect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1345
diff changeset
   247
  NS_DEBUG ("disconnect path="<<path);
1327
798c425d3b1f override Connect and Disconnect in Composite and Terminal Trace resolvers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1325
diff changeset
   248
  DoRecursiveOperation (path, cb, TraceContext (), DISCONNECT);
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   249
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   250
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   251
}//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
   252
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   253
#ifdef RUN_SELF_TESTS
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   254
1335
d0e45d84f9c6 fix includes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1334
diff changeset
   255
#include "test.h"
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   256
#include "trace-context-element.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
   257
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   258
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
   259
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   260
class TraceSourceTest : public TraceContextElement
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   261
{
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   262
public:
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   263
  enum Sources {
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   264
    DOUBLEA,
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   265
    DOUBLEB,
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   266
    UINT16_T
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   267
  };
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   268
  static uint16_t GetUid (void) 
1235
dc52ea3507ff TraceContextElement::Register -> TraceContextElement::AllocateUid
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1227
diff changeset
   269
  {static uint16_t uid = AllocateUid<TraceSourceTest> ("TraceSourceTest"); return uid;}
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   270
  void Print (std::ostream &os)
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   271
  {os << "tracesource=";
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   272
    if (m_sources == DOUBLEA) {os << "doubleA";}
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   273
    else if (m_sources == DOUBLEB) {os << "doubleB";}
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   274
    else if (m_sources == UINT16_T) {os << "uint16_t";}
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   275
  }
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   276
  TraceSourceTest () : m_sources (TraceSourceTest::DOUBLEA) {}
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   277
  TraceSourceTest (enum Sources sources) :m_sources (sources) {}
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   278
  bool IsDoubleA (void) const {return m_sources == TraceSourceTest::DOUBLEA;}
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   279
  bool IsDoubleB (void) const {return m_sources == TraceSourceTest::DOUBLEB;}
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   280
  bool IsUint16 (void) const {return m_sources == TraceSourceTest::UINT16_T;}
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   281
private:
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   282
  enum TraceSourceTest::Sources m_sources;
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   283
};
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   284
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   285
class SubTraceSourceTest : public TraceContextElement
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   286
{
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   287
public:
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   288
  enum Sources {
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   289
    INT,
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   290
  };
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   291
  static uint16_t GetUid (void) 
1235
dc52ea3507ff TraceContextElement::Register -> TraceContextElement::AllocateUid
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1227
diff changeset
   292
  {static uint16_t uid = AllocateUid<SubTraceSourceTest> ("SubTraceSourceTest"); return uid;}
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   293
  void Print (std::ostream &os)
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   294
  {os << "subtracesource=int";}
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   295
  SubTraceSourceTest () : m_sources (SubTraceSourceTest::INT) {}
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   296
  SubTraceSourceTest (enum Sources sources) : m_sources (sources) {}
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   297
private:
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   298
  enum Sources m_sources;
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   299
};
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   300
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   301
class CompositeTraceResolverTest : public Test
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   302
{
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   303
public:
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   304
  CompositeTraceResolverTest ();
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   305
  virtual ~CompositeTraceResolverTest ();
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   306
  virtual bool RunTests (void);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   307
private:
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   308
  void TraceDouble (TraceContext const &context, double v);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   309
  void TraceInt (TraceContext const &context, int v);
1333
c0d66de933e9 convert TraceResolver * to Ptr<TraceResolver>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1329
diff changeset
   310
  Ptr<TraceResolver> CreateSubResolver ();
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   311
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   312
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   313
  bool m_gotDoubleA;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   314
  bool m_gotDoubleB;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   315
  CallbackTraceSource<int> m_traceInt;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   316
  bool m_gotInt;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   317
};
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   318
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   319
CompositeTraceResolverTest::CompositeTraceResolverTest ()
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   320
  : Test ("CompositeTraceResolver")
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   321
{}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   322
CompositeTraceResolverTest::~CompositeTraceResolverTest ()
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   323
{}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   324
void 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   325
CompositeTraceResolverTest::TraceDouble (TraceContext const &context, double v)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   326
{
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   327
  TraceSourceTest source;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   328
  context.Get (source);
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   329
  if (source.IsDoubleA ())
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   330
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   331
      m_gotDoubleA = true;
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   332
    }
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   333
  else if (source.IsDoubleB ())
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   334
    {
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   335
      m_gotDoubleB = true;
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   336
    }
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   337
  else
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   338
    {
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   339
      NS_FATAL_ERROR ("should not get any other trace source in this sink");
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   340
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   341
  
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   342
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   343
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   344
void 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   345
CompositeTraceResolverTest::TraceInt (TraceContext const &context, int v)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   346
{
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   347
  m_gotInt = true;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   348
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   349
1333
c0d66de933e9 convert TraceResolver * to Ptr<TraceResolver>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1329
diff changeset
   350
Ptr<TraceResolver>
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   351
CompositeTraceResolverTest::CreateSubResolver (void)
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   352
{
1333
c0d66de933e9 convert TraceResolver * to Ptr<TraceResolver>
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1329
diff changeset
   353
  Ptr<CompositeTraceResolver> subresolver = Create<CompositeTraceResolver> ();
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   354
  subresolver->Add ("trace-int", m_traceInt, 
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   355
                    SubTraceSourceTest (SubTraceSourceTest::INT));
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   356
  return subresolver;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   357
}
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   358
bool 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   359
CompositeTraceResolverTest::RunTests (void)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   360
{
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   361
  bool ok = true;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   362
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   363
  CallbackTraceSource<double> traceDoubleA;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   364
  CallbackTraceSource<double> traceDoubleB;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   365
  TraceContext context;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   366
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   367
  CompositeTraceResolver resolver;
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   368
1227
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   369
  resolver.Add ("trace-double-a", traceDoubleA, 
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   370
                TraceSourceTest (TraceSourceTest::DOUBLEA));
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   371
  resolver.Add ("trace-double-b", traceDoubleB, 
268a9fc6f4a2 work in progress towards a working trace context
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 345
diff changeset
   372
                TraceSourceTest (TraceSourceTest::DOUBLEB));
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   373
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   374
  resolver.Connect ("/*", MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   375
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   376
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   377
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   378
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   379
  if (!m_gotDoubleA || m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   380
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   381
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   382
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   383
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   384
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   385
  traceDoubleB (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   386
  if (!m_gotDoubleA || !m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   387
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   388
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   389
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   390
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   391
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   392
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   393
  resolver.Disconnect ("/*", MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   394
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   395
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   396
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   397
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   398
  traceDoubleB (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   399
  if (m_gotDoubleA || m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   400
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   401
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   402
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   403
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   404
  resolver.Connect ("/trace-double-a", 
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   405
		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   406
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   407
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   408
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   409
  traceDoubleB (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   410
  if (!m_gotDoubleA || m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   411
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   412
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   413
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   414
  resolver.Disconnect ("/trace-double-a", 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   415
		       MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   416
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   417
  resolver.Connect ("/(trace-double-a)", 
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   418
		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   419
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   420
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   421
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   422
  traceDoubleB (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   423
  if (!m_gotDoubleA || m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   424
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   425
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   426
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   427
  resolver.Disconnect ("/trace-double-a", 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   428
		       MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   429
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   430
  resolver.Connect ("/(trace-double-a|trace-double-b)", 
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   431
		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   432
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   433
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   434
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   435
  traceDoubleB (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   436
  if (!m_gotDoubleA || !m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   437
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   438
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   439
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   440
  resolver.Disconnect ("/trace-double-a", 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   441
		       MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   442
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   443
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   444
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   445
  traceDoubleB (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   446
  if (m_gotDoubleA || !m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   447
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   448
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   449
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   450
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   451
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   452
  resolver.Disconnect ("/(trace-double-a|trace-double-b)", 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   453
		       MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   454
  m_gotDoubleA = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   455
  m_gotDoubleB = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   456
  traceDoubleA (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   457
  traceDoubleB (0);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   458
  if (m_gotDoubleA || m_gotDoubleB)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   459
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   460
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   461
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   462
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   463
  resolver.Add ("subresolver", 
1338
253557415994 rewrite the CompositeTraceResolver to use a simpler implementation, not based on callbacks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1335
diff changeset
   464
		MakeCallback (&CompositeTraceResolverTest::CreateSubResolver, 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
   465
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   466
  resolver.Connect ("/subresolver/trace-int", 
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   467
		    MakeCallback (&CompositeTraceResolverTest::TraceInt, this), TraceContext ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   468
  m_gotInt = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   469
  m_traceInt (1);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   470
  if (!m_gotInt)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   471
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   472
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   473
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   474
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   475
  resolver.Disconnect ("/subresolver/trace-int", 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   476
		       MakeCallback (&CompositeTraceResolverTest::TraceInt, this));
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   477
  m_gotInt = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   478
  m_traceInt (1);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   479
  if (m_gotInt)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   480
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   481
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   482
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   483
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   484
  resolver.Connect ("/*/trace-int", 
1325
f3be9eed2d90 remove TraceContext argument from TraceResolver constructor and move it to Connect
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1235
diff changeset
   485
		    MakeCallback (&CompositeTraceResolverTest::TraceInt, this), TraceContext ());
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   486
  m_gotInt = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   487
  m_traceInt (1);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   488
  if (!m_gotInt)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   489
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   490
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   491
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   492
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   493
  resolver.Disconnect ("/subresolver/trace-int", 
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   494
		       MakeCallback (&CompositeTraceResolverTest::TraceInt, this));
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   495
  m_gotInt = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   496
  m_traceInt (1);
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   497
  if (m_gotInt)
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   498
    {
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   499
      ok = false;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   500
    }
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   501
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   502
  SVTraceSource<uint16_t> source;
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
1345
eb06ae6eb180 use the abstract base of CallbackTraceSource to avoid pushing too much code in the header
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1338
diff changeset
   504
  resolver.Add ("uint16_t", source, TraceSourceTest (TraceSourceTest::UINT16_T));
345
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   505
  
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   506
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   507
  return ok;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   508
}
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
static CompositeTraceResolverTest g_compositeTraceResolverTest;
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   511
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   512
}//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
   513
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   514
47b41507a45a move channel.cc channel.h to node directory; merge ns-3-tracing from mathieu
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   515
#endif /* RUN_SELF_TESTS */