Element of a backbone path. More...
#include <plc-backbone.h>
Public Member Functions | |
PLC_BackboneBranch (Ptr< PLC_Node > node, Ptr< PLC_Node > before, Ptr< PLC_Node > next, Ptr< const SpectrumModel > sm) | |
Ptr< PLC_Node > | GetNodePtr (void) |
PLC_Node * | GetNodePeekPtr (void) |
Ptr< PLC_Node > | GetBeforeNodePtr (void) |
PLC_Node * | GetBeforeNodePeekPtr (void) |
Ptr< PLC_Node > | GetNextNodePtr (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_Impedance > | GetEquivalentBridgeTapImpedance (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 |
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.
ns3::PLC_BackboneBranch::PLC_BackboneBranch | ( | Ptr< PLC_Node > | node, |
Ptr< PLC_Node > | before, | ||
Ptr< PLC_Node > | next, | ||
Ptr< const SpectrumModel > | sm | ||
) |
Constructor
node | Backbone node |
before | Adjacent node 1 |
next | Adjacent node 2 |
sm | Spectrum model |
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
txInterface | TX interface of the backbone path to be registered |
rxInterface | RX 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
graph_copy | Copy of the boost graph (for parallel processing) |
graph_copy_mutex | Shared mutex |
Ptr<PLC_Node> ns3::PLC_BackboneBranch::GetBeforeNodePtr | ( | void | ) | [inline] |
Ptr<PLC_Impedance> ns3::PLC_BackboneBranch::GetEquivalentBridgeTapImpedance | ( | void | ) | const [inline] |
std::pair<unsigned int, std::pair<unsigned int, unsigned int> > ns3::PLC_BackboneBranch::GetKey | ( | void | ) | [inline] |
Ptr<PLC_Node> ns3::PLC_BackboneBranch::GetNextNodePtr | ( | void | ) | [inline] |
Ptr<PLC_Node> ns3::PLC_BackboneBranch::GetNodePtr | ( | void | ) | [inline] |
TypeId ns3::PLC_BackboneBranch::GetTypeId | ( | void | ) | [static] |
bool ns3::PLC_BackboneBranch::IsTimeVariant | ( | void | ) | const [inline] |
bool ns3::PLC_BackboneBranch::IsUp2Date | ( | void | ) | const [inline] |
void ns3::PLC_BackboneBranch::Lock | ( | void | ) | [inline] |
Mutex lock an unlock
void ns3::PLC_BackboneBranch::SetTimeVariant | ( | void | ) |
Convert equivalent bridge tap impedance to time variant value