replace CallbackTraceSourceBase with TraceSource base class
This commit is contained in:
@@ -26,18 +26,10 @@
|
||||
#include "callback.h"
|
||||
#include "fatal-error.h"
|
||||
#include "trace-context.h"
|
||||
#include "trace-source.h"
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class CallbackTraceSourceBase
|
||||
{
|
||||
public:
|
||||
virtual ~CallbackTraceSourceBase () {}
|
||||
virtual void AddCallback (CallbackBase const & callback, TraceContext const & context) = 0;
|
||||
virtual void RemoveCallback (CallbackBase const & callback) = 0;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* \brief log arbitrary number of parameters to a matching ns3::Callback
|
||||
* \ingroup lowleveltracing
|
||||
@@ -47,7 +39,7 @@ public:
|
||||
*/
|
||||
template<typename T1 = empty, typename T2 = empty,
|
||||
typename T3 = empty, typename T4 = empty>
|
||||
class CallbackTraceSource : public CallbackTraceSourceBase {
|
||||
class CallbackTraceSource : public TraceSource {
|
||||
public:
|
||||
CallbackTraceSource ();
|
||||
virtual void AddCallback (CallbackBase const & callback, TraceContext const & context);
|
||||
|
||||
@@ -63,6 +63,14 @@ CompositeTraceResolver::Add (std::string name,
|
||||
AddItem (item);
|
||||
}
|
||||
|
||||
void
|
||||
CompositeTraceResolver::Add (std::string name,
|
||||
TraceSource &trace)
|
||||
{
|
||||
DoAddSource (name, trace, TraceContext ());
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
CompositeTraceResolver::Add (std::string name,
|
||||
FVTraceSourceBase &trace)
|
||||
@@ -149,11 +157,11 @@ CompositeTraceResolver::DoAddSV (std::string name,
|
||||
}
|
||||
|
||||
void
|
||||
CompositeTraceResolver::DoAddCallback (std::string name,
|
||||
CallbackTraceSourceBase &trace,
|
||||
const TraceContext &context)
|
||||
CompositeTraceResolver::DoAddSource (std::string name,
|
||||
TraceSource &trace,
|
||||
const TraceContext &context)
|
||||
{
|
||||
class CallbackCompositeItem : public CompositeItem
|
||||
class SourceCompositeItem : public CompositeItem
|
||||
{
|
||||
public:
|
||||
virtual void Connect (std::string subpath, const CallbackBase &cb, const TraceContext &context)
|
||||
@@ -161,8 +169,8 @@ CompositeTraceResolver::DoAddCallback (std::string name,
|
||||
virtual void Disconnect (std::string subpath, const CallbackBase &cb)
|
||||
{if (subpath == "") {trace->RemoveCallback (cb);}}
|
||||
|
||||
CallbackTraceSourceBase *trace;
|
||||
} *item = new CallbackCompositeItem ();
|
||||
TraceSource *trace;
|
||||
} *item = new SourceCompositeItem ();
|
||||
item->name = name;
|
||||
item->context = context;
|
||||
item->trace = &trace;
|
||||
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
*/
|
||||
template <typename T>
|
||||
void Add (std::string name,
|
||||
CallbackTraceSourceBase &trace, T const &context);
|
||||
TraceSource &trace, T const &context);
|
||||
/**
|
||||
* \param name name of trace source
|
||||
* \param trace a signed variable trace source
|
||||
@@ -102,10 +102,8 @@ public:
|
||||
* source will match the name specified during namespace
|
||||
* resolution.
|
||||
*/
|
||||
template <typename T1, typename T2,
|
||||
typename T3, typename T4>
|
||||
void Add (std::string name,
|
||||
CallbackTraceSource<T1,T2,T3,T4> &trace);
|
||||
TraceSource &trace);
|
||||
/**
|
||||
* \param name name of trace source
|
||||
* \param trace a signed variable trace source
|
||||
@@ -195,9 +193,9 @@ private:
|
||||
const TraceContext &context,
|
||||
enum Operation op);
|
||||
void DoAddChild (std::string name, Ptr<Object> child, const TraceContext &context);
|
||||
void DoAddCallback (std::string name,
|
||||
CallbackTraceSourceBase &trace,
|
||||
const TraceContext &context);
|
||||
void DoAddSource (std::string name,
|
||||
TraceSource &trace,
|
||||
const TraceContext &context);
|
||||
void DoAddSV (std::string name,
|
||||
SVTraceSourceBase &trace,
|
||||
const TraceContext &context);
|
||||
@@ -222,20 +220,12 @@ namespace ns3 {
|
||||
template <typename T>
|
||||
void
|
||||
CompositeTraceResolver::Add (std::string name,
|
||||
CallbackTraceSourceBase &trace,
|
||||
TraceSource &trace,
|
||||
T const &context)
|
||||
{
|
||||
TraceContext ctx;
|
||||
ctx.Add (context);
|
||||
DoAddCallback (name, trace, ctx);
|
||||
}
|
||||
template <typename T1, typename T2,
|
||||
typename T3, typename T4>
|
||||
void
|
||||
CompositeTraceResolver::Add (std::string name,
|
||||
CallbackTraceSource<T1,T2,T3,T4> &trace)
|
||||
{
|
||||
DoAddCallback (name, trace, TraceContext ());
|
||||
DoAddSource (name, trace, ctx);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
||||
@@ -23,11 +23,12 @@
|
||||
#define F_VARIABLE_TRACER_H
|
||||
|
||||
#include "callback-trace-source.h"
|
||||
#include "trace-source.h"
|
||||
#include <stdint.h>
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class FVTraceSourceBase {
|
||||
class FVTraceSourceBase : public TraceSource {
|
||||
public:
|
||||
typedef CallbackTraceSource<double, double> ChangeNotifyCallback;
|
||||
|
||||
|
||||
@@ -23,11 +23,12 @@
|
||||
#define SV_TRACE_SOURCE_H
|
||||
|
||||
#include "callback-trace-source.h"
|
||||
#include "trace-source.h"
|
||||
#include <stdint.h>
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class SVTraceSourceBase {
|
||||
class SVTraceSourceBase : public TraceSource {
|
||||
public:
|
||||
typedef CallbackTraceSource<int64_t, int64_t> ChangeNotifyCallback;
|
||||
|
||||
@@ -37,7 +38,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
~SVTraceSourceBase () {}
|
||||
virtual ~SVTraceSourceBase () {}
|
||||
|
||||
void AddCallback (CallbackBase const & callback, TraceContext const & context) {
|
||||
m_callback.AddCallback (callback, context);
|
||||
|
||||
36
src/core/trace-source.h
Normal file
36
src/core/trace-source.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
|
||||
/*
|
||||
* Copyright (c) 2007 INRIA
|
||||
* All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation;
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
|
||||
*/
|
||||
#ifndef TRACE_SOURCE_H
|
||||
#define TRACE_SOURCE_H
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class TraceSource
|
||||
{
|
||||
public:
|
||||
virtual ~TraceSource () {}
|
||||
virtual void AddCallback (CallbackBase const & callback, TraceContext const & context) = 0;
|
||||
virtual void RemoveCallback (CallbackBase const & callback) = 0;
|
||||
};
|
||||
|
||||
} // namespace ns3
|
||||
|
||||
#endif /* TRACE_SOURCE_H */
|
||||
@@ -23,11 +23,12 @@
|
||||
#define UV_TRACE_SOURCE_H
|
||||
|
||||
#include "callback-trace-source.h"
|
||||
#include "trace-source.h"
|
||||
#include <stdint.h>
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class UVTraceSourceBase {
|
||||
class UVTraceSourceBase : public TraceSource {
|
||||
public:
|
||||
typedef CallbackTraceSource<uint64_t, uint64_t> ChangeNotifyCallback;
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ def build(bld):
|
||||
'component-manager.h',
|
||||
'type-traits.h',
|
||||
'random-variable-default-value.h',
|
||||
'trace-source.h',
|
||||
'uv-trace-source.h',
|
||||
'sv-trace-source.h',
|
||||
'fv-trace-source.h',
|
||||
|
||||
Reference in New Issue
Block a user