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