ns-3 PLC model
 All Classes Functions Variables Enumerations
Public Member Functions | Static Public Member Functions | Friends
ns3::PLC_BackboneBranch Class Reference

Element of a backbone path. More...

#include <plc-backbone.h>

List of all members.

Public Member Functions

 PLC_BackboneBranch (Ptr< PLC_Node > node, Ptr< PLC_Node > before, Ptr< PLC_Node > next, Ptr< const SpectrumModel > sm)
Ptr< PLC_NodeGetNodePtr (void)
PLC_NodeGetNodePeekPtr (void)
Ptr< PLC_NodeGetBeforeNodePtr (void)
PLC_NodeGetBeforeNodePeekPtr (void)
Ptr< PLC_NodeGetNextNodePtr (void)
void AddInterfacePair (PLC_TxInterface *txInterface, PLC_RxInterface *rxInterface)
void DiscoverOutlets (boost::UGraph &graph_copy, PLC_Mutex *graph_copy_mutex)
void CalculateEquivalentBridgeTapImpedance (void)
Ptr< PLC_ImpedanceGetEquivalentBridgeTapImpedance (void) const
bool IsUp2Date (void) const
bool IsTimeVariant (void) const
void SetTimeVariant (void)
std::pair< unsigned int,
std::pair< unsigned int,
unsigned int > > 
GetKey (void)
void Lock (void)
void Unlock (void)

Static Public Member Functions

static TypeId GetTypeId (void)

Friends

class PLC_Outlet

Detailed Description

Element of a backbone path.

The shortest path between each transmitter-receiver pair is described by one backbone path maintained by PLC_ChannelTransferImpl. A backbone branch is uniquely defined by three adjacent nodes on this path and therefore gives information about the graph edges contributing to the computation of channel transfer function. Thereby several backbone branches of different transmitter-receiver paths can be associated with the same plc node as well as one backbone branch can be part of multiple backbone branches. Thus, memory allocation and recomputation effort is minimized. Besides the equivalent shunt impedances of the bridge tap of one backbone node is cached.


Constructor & Destructor Documentation

ns3::PLC_BackboneBranch::PLC_BackboneBranch ( Ptr< PLC_Node node,
Ptr< PLC_Node before,
Ptr< PLC_Node next,
Ptr< const SpectrumModel >  sm 
)

Constructor

Parameters:
nodeBackbone node
beforeAdjacent node 1
nextAdjacent node 2
smSpectrum model

Member Function Documentation

void ns3::PLC_BackboneBranch::AddInterfacePair ( PLC_TxInterface txInterface,
PLC_RxInterface rxInterface 
)

Register transmitter-receiver which is using this backbone branch for its backbone path. That is needed to notify PLC_ChannelTransferImpl after a change of bridge tap impedance

Parameters:
txInterfaceTX interface of the backbone path to be registered
rxInterfaceRX interface of the backbone path to be registered

Calculates the access impedance of the bridge tap (recursively)

void ns3::PLC_BackboneBranch::DiscoverOutlets ( boost::UGraph &  graph_copy,
PLC_Mutex graph_copy_mutex 
)

Triggers a depth first search on all bridge tap edges of this branch to find outlets and to register on them for notification

Parameters:
graph_copyCopy of the boost graph (for parallel processing)
graph_copy_mutexShared mutex
Returns:
First adjacent node pointer
Returns:
access impedance of the bridge tap
std::pair<unsigned int, std::pair<unsigned int, unsigned int> > ns3::PLC_BackboneBranch::GetKey ( void  ) [inline]
Returns:
Key of the backbone branch (id triple of m_node, m_node_before, m_node_next)
Returns:
Second adjacent node pointer
Returns:
Backbone node
TypeId ns3::PLC_BackboneBranch::GetTypeId ( void  ) [static]
Returns:
bool ns3::PLC_BackboneBranch::IsTimeVariant ( void  ) const [inline]
Returns:
True if equivalent bridge tap impedance is time variant
bool ns3::PLC_BackboneBranch::IsUp2Date ( void  ) const [inline]
Returns:
True if equivalent bridge tap impedance is still up to date
void ns3::PLC_BackboneBranch::Lock ( void  ) [inline]

Mutex lock an unlock

Convert equivalent bridge tap impedance to time variant value


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations