A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::PacketProbe Class Reference

This class is designed to probe an underlying ns3 TraceSource exporting a packet. More...

#include <packet-probe.h>

+ Inheritance diagram for ns3::PacketProbe:
+ Collaboration diagram for ns3::PacketProbe:

Public Member Functions

 PacketProbe ()
 
virtual ~PacketProbe ()
 
virtual bool ConnectByObject (std::string traceSource, Ptr< Object > obj)
 connect to a trace source attribute provided by a given object More...
 
virtual void ConnectByPath (std::string path)
 connect to a trace source provided by a config path More...
 
void SetValue (Ptr< const Packet > packet)
 Set a probe value. More...
 
- Public Member Functions inherited from ns3::Probe
 Probe ()
 
virtual ~Probe ()
 
virtual bool IsEnabled (void) const
 
- Public Member Functions inherited from ns3::DataCollectionObject
 DataCollectionObject ()
 
virtual ~DataCollectionObject ()
 
void Disable (void)
 Unset the status of an individual object. More...
 
void Enable (void)
 Set the status of an individual object. More...
 
std::string GetName (void) const
 Get the object's name. More...
 
void SetName (std::string name)
 Set the object's name. All spaces are replaced by underscores. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID. More...
 
static void SetValueByPath (std::string path, Ptr< const Packet > packet)
 Set a probe value by its name in the Config system. More...
 
- Static Public Member Functions inherited from ns3::Probe
static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::DataCollectionObject
static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Member Functions

void TraceSink (Ptr< const Packet > packet)
 Method to connect to an underlying ns3::TraceSource with arguments of type Ptr<const Packet> More...
 

Private Attributes

TracedCallback< Ptr< const
Packet > > 
m_output
 Traced callback: packet received. More...
 
TracedCallback< uint32_t,
uint32_t > 
m_outputBytes
 Traced callback: size of previous packet receive, size of actual packet received. More...
 
Ptr< const Packetm_packet
 The traced packet. More...
 
uint32_t m_packetSizeOld
 The size of the traced packet. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoDispose (void)
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 
- Protected Attributes inherited from ns3::Probe
Time m_start
 Time when logging starts. More...
 
Time m_stop
 Time when logging stops. More...
 
- Protected Attributes inherited from ns3::DataCollectionObject
bool m_enabled
 Object's activation state. More...
 
std::string m_name
 Name of the object within the data collection framework. More...
 

Detailed Description

This class is designed to probe an underlying ns3 TraceSource exporting a packet.

Doxygen introspection did not find any typical Config paths.

This probe exports a trace source "Output" with argument of type Ptr<const Packet>. This probe exports another trace source "OutputBytes" with arguments of type uint32_t, which is the number of bytes in the packet. The trace sources emit values when either the probed trace source emits a new value, or when SetValue () is called.


No Attributes are defined for this type.

TraceSources

  • Output: The packet that serve as the output for this probe
  • OutputBytes: The number of bytes in the packet

Definition at line 47 of file packet-probe.h.

Constructor & Destructor Documentation

ns3::PacketProbe::PacketProbe ( )

Definition at line 53 of file packet-probe.cc.

References m_packet, and NS_LOG_FUNCTION.

ns3::PacketProbe::~PacketProbe ( )
virtual

Definition at line 59 of file packet-probe.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

bool ns3::PacketProbe::ConnectByObject ( std::string  traceSource,
Ptr< Object obj 
)
virtual

connect to a trace source attribute provided by a given object

Parameters
traceSourcethe name of the attribute TraceSource to connect to
objns3::Object to connect to
Returns
true if the trace source was successfully connected

Implements ns3::Probe.

Definition at line 86 of file packet-probe.cc.

References ns3::Names::FindPath(), ns3::MakeCallback(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::ObjectBase::TraceConnectWithoutContext(), and TraceSink().

+ Here is the call graph for this function:

void ns3::PacketProbe::ConnectByPath ( std::string  path)
virtual

connect to a trace source provided by a config path

Parameters
pathConfig path to bind to

Note, if an invalid path is provided, the probe will not be connected to anything.

Implements ns3::Probe.

Definition at line 95 of file packet-probe.cc.

References ns3::Config::ConnectWithoutContext(), ns3::MakeCallback(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and TraceSink().

+ Here is the call graph for this function:

TypeId ns3::PacketProbe::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

Definition at line 38 of file packet-probe.cc.

References m_output, m_outputBytes, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

void ns3::PacketProbe::SetValue ( Ptr< const Packet packet)

Set a probe value.

Parameters
packetset the traced packet equal to this

Definition at line 65 of file packet-probe.cc.

References ns3::Packet::GetSize(), m_output, m_outputBytes, m_packet, m_packetSizeOld, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void ns3::PacketProbe::SetValueByPath ( std::string  path,
Ptr< const Packet packet 
)
static

Set a probe value by its name in the Config system.

Parameters
pathconfig path to access the probe
packetset the traced packet equal to this

Definition at line 77 of file packet-probe.cc.

References NS_ASSERT_MSG, and NS_LOG_FUNCTION.

void ns3::PacketProbe::TraceSink ( Ptr< const Packet packet)
private

Method to connect to an underlying ns3::TraceSource with arguments of type Ptr<const Packet>

Parameters
packetthe traced packet
Internal:

Definition at line 103 of file packet-probe.cc.

References ns3::Packet::GetSize(), ns3::Probe::IsEnabled(), m_output, m_outputBytes, m_packet, m_packetSizeOld, and NS_LOG_FUNCTION.

Referenced by ConnectByObject(), and ConnectByPath().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

TracedCallback<Ptr<const Packet> > ns3::PacketProbe::m_output
private

Traced callback: packet received.

Definition at line 104 of file packet-probe.h.

Referenced by GetTypeId(), SetValue(), and TraceSink().

TracedCallback<uint32_t, uint32_t> ns3::PacketProbe::m_outputBytes
private

Traced callback: size of previous packet receive, size of actual packet received.

Definition at line 106 of file packet-probe.h.

Referenced by GetTypeId(), SetValue(), and TraceSink().

Ptr<const Packet> ns3::PacketProbe::m_packet
private

The traced packet.

Definition at line 109 of file packet-probe.h.

Referenced by PacketProbe(), SetValue(), and TraceSink().

uint32_t ns3::PacketProbe::m_packetSizeOld
private

The size of the traced packet.

Definition at line 112 of file packet-probe.h.

Referenced by SetValue(), and TraceSink().


The documentation for this class was generated from the following files: