add an abstract base to CallbackTraceSource

This commit is contained in:
Mathieu Lacage
2007-08-12 18:27:30 +02:00
parent de7999c932
commit 442d4c9e35

View File

@@ -29,6 +29,14 @@
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
@@ -39,11 +47,11 @@ namespace ns3 {
*/
template<typename T1 = empty, typename T2 = empty,
typename T3 = empty, typename T4 = empty>
class CallbackTraceSource {
class CallbackTraceSource : public CallbackTraceSourceBase {
public:
CallbackTraceSource ();
void AddCallback (CallbackBase const & callback, TraceContext const & context);
void RemoveCallback (CallbackBase const & callback);
virtual void AddCallback (CallbackBase const & callback, TraceContext const & context);
virtual void RemoveCallback (CallbackBase const & callback);
void operator() (void) const;
void operator() (T1 a1) const;
void operator() (T1 a1, T2 a2) const;