18 #ifndef CHANNEL_COORDINATOR_H
19 #define CHANNEL_COORDINATOR_H
20 #include "ns3/nstime.h"
21 #include "ns3/object.h"
22 #include "ns3/event-id.h"
244 typedef std::vector<Ptr<ChannelCoordinationListener> >
Listeners;
246 typedef std::vector<Ptr<ChannelCoordinationListener> >::iterator
ListenersI;
bool IsGuardInterval(Time duration=Seconds(0.0)) const
Simulation virtual time values and global simulation resolution.
ChannelCoordinator deals with channel coordination in data plane (see 1609.4 chapter 5...
void NotifySchSlot(void)
notify listeners of a SCH slot start
EventId m_coordination
coordination event
Listeners m_listeners
listeners
Time GetRemainTime(Time duration=Seconds(0.0)) const
virtual ~ChannelCoordinationListener(void)
uint32_t m_guardCount
guard count
void SetCchInterval(Time cchi)
bool IsSchInterval(Time duration=Seconds(0.0)) const
bool IsValidConfig(void) const
virtual void NotifyGuardSlotStart(Time duration, bool cchi)=0
void NotifyGuardSlot(void)
notify listeners of a guard slot start
Time NeedTimeToGuardInterval(Time duration=Seconds(0.0)) const
static Time GetDefaultGuardInterval(void)
void UnregisterAllListeners(void)
Remove all listeners.
static Time GetDefaultSchInterval(void)
void StartChannelCoordination(void)
start to make channel coordination events
Time GetGuardInterval(void) const
void RegisterListener(Ptr< ChannelCoordinationListener > listener)
Time NeedTimeToCchInterval(Time duration=Seconds(0.0)) const
bool IsCchInterval(Time duration=Seconds(0.0)) const
void UnregisterListener(Ptr< ChannelCoordinationListener > listener)
virtual void NotifyCchSlotStart(Time duration)=0
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Time GetIntervalTime(Time duration=Seconds(0.0)) const
Time GetCchInterval(void) const
virtual void DoInitialize(void)
Initialize() implementation.
std::vector< Ptr< ChannelCoordinationListener > >::iterator ListenersI
Listeners iterator typedef.
Time NeedTimeToSchInterval(Time duration=Seconds(0.0)) const
static Time GetDefaultCchInterval(void)
Time GetSchInterval(void) const
void NotifyCchSlot(void)
notify listeners of a CCH slot start
void StopChannelCoordination(void)
stop channel coordination events
virtual void DoDispose(void)
Destructor implementation.
Time GetCchSlot(void) const
virtual ~ChannelCoordinator()
virtual void NotifySchSlotStart(Time duration)=0
An identifier for simulation events.
receive notifications about channel coordination events.
Time Seconds(double value)
Construct a Time in the indicated unit.
Time GetSchSlot(void) const
void SetSchInterval(Time schi)
Time GetSyncInterval(void) const
static TypeId GetTypeId(void)
Get the type ID.
A base class which provides memory management and object aggregation.
A template-based reference counting class.
a unique identifier for an interface.
std::vector< Ptr< ChannelCoordinationListener > > Listeners
Listeners typdef.
void SetGuardInterval(Time guardi)
static Time GetDefaultSyncInterval(void)