ns3::SatInterference Class Referenceabstract

Abstract class defining interface for interference calculations objects. More...

#include "satellite-interference.h"

+ Inheritance diagram for ns3::SatInterference:
+ Collaboration diagram for ns3::SatInterference:

Classes

class  InterferenceChangeEvent
 Event for identifying interference change events (receiving) More...
 

Public Member Functions

 SatInterference ()
 Constructor for Satellite interference base class. More...
 
 ~SatInterference ()
 Destructor for Satellite interference base class. More...
 
Ptr< SatInterference::InterferenceChangeEventAdd (Time rxDuration, double rxPower, Address rxAddress)
 Adds interference power to interference object. More...
 
std::vector< std::pair< double, double > > Calculate (Ptr< SatInterference::InterferenceChangeEvent > event)
 Calculates interference power for the given reference. More...
 
TypeId GetInstanceTypeId (void) const
 Derived from Object. More...
 
virtual bool HasCollision (Ptr< SatInterference::InterferenceChangeEvent > event)
 Checks whether the packet has collided. More...
 
virtual void NotifyRxEnd (Ptr< SatInterference::InterferenceChangeEvent > event)
 Notifies that RX is ended by a receiver. More...
 
virtual void NotifyRxStart (Ptr< SatInterference::InterferenceChangeEvent > event)
 Notifies that RX is started by a receiver. More...
 
void Reset (void)
 Resets current interference. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Derived from Object. More...
 

Private Member Functions

 SatInterference (const SatInterference &o)
 
virtual Ptr< SatInterference::InterferenceChangeEventDoAdd (Time rxDuration, double rxPower, Address rxAddress)=0
 Adds interference power to interference object. More...
 
virtual std::vector< std::pair< double, double > > DoCalculate (Ptr< SatInterference::InterferenceChangeEvent > event)=0
 Calculates interference power for the given reference Sets final power at end time to finalPower. More...
 
virtual void DoNotifyRxEnd (Ptr< SatInterference::InterferenceChangeEvent > event)=0
 Notifies that RX is ended by a receiver. More...
 
virtual void DoNotifyRxStart (Ptr< SatInterference::InterferenceChangeEvent > event)=0
 Notifies that RX is started by a receiver. More...
 
virtual void DoReset (void)=0
 Resets current interference. More...
 
SatInterferenceoperator= (const SatInterference &o)
 

Private Attributes

uint32_t m_currentlyReceiving
 
std::map< Ptr< SatInterference::InterferenceChangeEvent >, bool > m_packetCollisions
 

Detailed Description

Abstract class defining interface for interference calculations objects.

Definition at line 36 of file satellite-interference.h.

Constructor & Destructor Documentation

◆ SatInterference() [1/2]

ns3::SatInterference::SatInterference ( )

Constructor for Satellite interference base class.

Definition at line 115 of file satellite-interference.cc.

◆ ~SatInterference()

ns3::SatInterference::~SatInterference ( )

Destructor for Satellite interference base class.

Definition at line 120 of file satellite-interference.cc.

◆ SatInterference() [2/2]

ns3::SatInterference::SatInterference ( const SatInterference o)
private

Member Function Documentation

◆ Add()

Ptr< SatInterference::InterferenceChangeEvent > ns3::SatInterference::Add ( Time  rxDuration,
double  rxPower,
Address  rxAddress 
)

Adds interference power to interference object.

Behavior depends on class actually implementing interference.

Parameters
rxDurationDuration of the receiving.
rxPowerReceiving power.
rxAddressMAC address.
Returns
the pointer to interference event as a reference of the addition

Definition at line 125 of file satellite-interference.cc.

References DoAdd().

+ Here is the call graph for this function:

◆ Calculate()

std::vector< std::pair< double, double > > ns3::SatInterference::Calculate ( Ptr< SatInterference::InterferenceChangeEvent event)

Calculates interference power for the given reference.

Parameters
eventReference event which for interference is calculated.
Returns
Calculated power value at end of receiving

Definition at line 133 of file satellite-interference.cc.

References DoCalculate(), m_currentlyReceiving, and m_packetCollisions.

+ Here is the call graph for this function:

◆ DoAdd()

virtual Ptr<SatInterference::InterferenceChangeEvent> ns3::SatInterference::DoAdd ( Time  rxDuration,
double  rxPower,
Address  rxAddress 
)
privatepure virtual

Adds interference power to interference object.

Parameters
rxDurationDuration of the receiving.
rxPowerReceiving power.
rxAddressMAC address.
Returns
the pointer to interference event as a reference of the addition

Concrete subclasses of this base class must implement this method.

Implemented in ns3::SatTracedInterference, ns3::SatPerPacketInterference, and ns3::SatConstantInterference.

Referenced by Add().

+ Here is the caller graph for this function:

◆ DoCalculate()

virtual std::vector<std::pair<double, double> > ns3::SatInterference::DoCalculate ( Ptr< SatInterference::InterferenceChangeEvent event)
privatepure virtual

Calculates interference power for the given reference Sets final power at end time to finalPower.

Parameters
eventReference event which for interference is calculated.
Returns
Final power value at end of receiving

Concrete subclasses of this base class must implement this method.

Implemented in ns3::SatTracedInterference, ns3::SatPerPacketInterference, ns3::SatPerFragmentInterference, and ns3::SatConstantInterference.

Referenced by Calculate().

+ Here is the caller graph for this function:

◆ DoNotifyRxEnd()

virtual void ns3::SatInterference::DoNotifyRxEnd ( Ptr< SatInterference::InterferenceChangeEvent event)
privatepure virtual

Notifies that RX is ended by a receiver.

Concrete subclasses of this base class must implement this method.

Parameters
eventInterference reference event of receiver

Implemented in ns3::SatTracedInterference, ns3::SatPerPacketInterference, and ns3::SatConstantInterference.

Referenced by NotifyRxEnd().

+ Here is the caller graph for this function:

◆ DoNotifyRxStart()

virtual void ns3::SatInterference::DoNotifyRxStart ( Ptr< SatInterference::InterferenceChangeEvent event)
privatepure virtual

Notifies that RX is started by a receiver.

Concrete subclasses of this base class must implement this method.

Parameters
eventInterference reference event of receiver

Implemented in ns3::SatTracedInterference, ns3::SatPerPacketInterference, and ns3::SatConstantInterference.

Referenced by NotifyRxStart().

+ Here is the caller graph for this function:

◆ DoReset()

virtual void ns3::SatInterference::DoReset ( void  )
privatepure virtual

Resets current interference.

Concrete subclasses of this base class must implement this method.

Implemented in ns3::SatTracedInterference, ns3::SatPerPacketInterference, and ns3::SatConstantInterference.

Referenced by Reset().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::SatInterference::GetInstanceTypeId ( void  ) const

Derived from Object.

Definition at line 110 of file satellite-interference.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetTypeId()

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

Derived from Object.

Definition at line 102 of file satellite-interference.cc.

Referenced by GetInstanceTypeId().

+ Here is the caller graph for this function:

◆ HasCollision()

bool ns3::SatInterference::HasCollision ( Ptr< SatInterference::InterferenceChangeEvent event)
virtual

Checks whether the packet has collided.

Used by random access

Parameters
eventInterference reference event of receiver
Returns
has the packet collided

Definition at line 204 of file satellite-interference.cc.

References m_packetCollisions.

◆ NotifyRxEnd()

void ns3::SatInterference::NotifyRxEnd ( Ptr< SatInterference::InterferenceChangeEvent event)
virtual

Notifies that RX is ended by a receiver.

Parameters
eventInterference reference event of receiver

Definition at line 189 of file satellite-interference.cc.

References DoNotifyRxEnd(), m_currentlyReceiving, and m_packetCollisions.

+ Here is the call graph for this function:

◆ NotifyRxStart()

void ns3::SatInterference::NotifyRxStart ( Ptr< SatInterference::InterferenceChangeEvent event)
virtual

Notifies that RX is started by a receiver.

Parameters
eventInterference reference event of receiver

Definition at line 171 of file satellite-interference.cc.

References DoNotifyRxStart(), m_currentlyReceiving, and m_packetCollisions.

+ Here is the call graph for this function:

◆ operator=()

SatInterference& ns3::SatInterference::operator= ( const SatInterference o)
private

◆ Reset()

void ns3::SatInterference::Reset ( void  )

Resets current interference.

Definition at line 160 of file satellite-interference.cc.

References DoReset(), m_currentlyReceiving, and m_packetCollisions.

Referenced by ns3::SatConstantInterference::~SatConstantInterference(), ns3::SatPerPacketInterference::~SatPerPacketInterference(), and ns3::SatTracedInterference::~SatTracedInterference().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_currentlyReceiving

uint32_t ns3::SatInterference::m_currentlyReceiving
private

Definition at line 231 of file satellite-interference.h.

Referenced by Calculate(), NotifyRxEnd(), NotifyRxStart(), and Reset().

◆ m_packetCollisions

std::map<Ptr<SatInterference::InterferenceChangeEvent>, bool> ns3::SatInterference::m_packetCollisions
private

Definition at line 226 of file satellite-interference.h.

Referenced by Calculate(), HasCollision(), NotifyRxEnd(), NotifyRxStart(), and Reset().


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