20 #ifndef TRACE_SOURCE_ACCESSOR_H
21 #define TRACE_SOURCE_ACCESSOR_H
115 template <
typename T>
136 template <
typename T,
typename SOURCE>
137 Ptr<const TraceSourceAccessor>
143 T *p =
dynamic_cast<T*
> (obj);
152 T *p =
dynamic_cast<T*
> (obj);
157 (p->*m_source).
Connect (cb, context);
161 T *p =
dynamic_cast<T*
> (obj);
170 T *p =
dynamic_cast<T*
> (obj);
179 } *accessor =
new Accessor ();
180 accessor->m_source = a;
184 template <
typename T>
Smart pointer class similar to boost::intrusive_ptr.
Smart pointer implementation.
virtual bool ConnectWithoutContext(ObjectBase *obj, const CallbackBase &cb) const =0
Connect a Callback to a TraceSource (without context.)
virtual bool DisconnectWithoutContext(ObjectBase *obj, const CallbackBase &cb) const =0
Disconnect a Callback from a TraceSource (without context).
TraceSourceAccessor()
Constructor.
void Disconnect(std::string path, const CallbackBase &cb)
Base class for Callback class.
Anchor the ns-3 type and attribute system.
void Connect(std::string path, const CallbackBase &cb)
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
virtual ~TraceSourceAccessor()
Destructor.
Ptr< const TraceSourceAccessor > DoMakeTraceSourceAccessor(SOURCE T::*a)
MakeTraceSourceAccessor() implementation.
virtual bool Disconnect(ObjectBase *obj, std::string context, const CallbackBase &cb) const =0
Disconnect a Callback from a TraceSource with a context string.
virtual bool Connect(ObjectBase *obj, std::string context, const CallbackBase &cb) const =0
Connect a Callback to a TraceSource with a context string.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Control access to objects' trace sources.
void DisconnectWithoutContext(std::string path, const CallbackBase &cb)
A template-based reference counting class.
void ConnectWithoutContext(std::string path, const CallbackBase &cb)
Reference counting for smart pointers.