26 #include "ns3/header.h"
211 struct SortProcess :
public std::binary_function<PriorityUlJob*, PriorityUlJob*, bool>
227 int32_t leftBacklogged = left.
GetUlJob ()->GetServiceFlow ()->GetRecord ()->GetBacklogged ();
228 int32_t rightBacklogged = left.
GetUlJob ()->GetServiceFlow ()->GetRecord ()->GetBacklogged ();
229 if (leftBacklogged <= rightBacklogged)
246 struct SortProcessPtr:
public std::binary_function< Ptr<PriorityUlJob>, Ptr<PriorityUlJob>, bool>
256 if (left->GetPriority () < right->GetPriority ())
260 else if (left->GetPriority () == right->GetPriority ())
262 int32_t leftBacklogged = left->GetUlJob ()->GetServiceFlow ()->GetRecord ()->GetBacklogged ();
263 int32_t rightBacklogged = left->GetUlJob ()->GetServiceFlow ()->GetRecord ()->GetBacklogged ();
264 if (leftBacklogged <= rightBacklogged)
ReqType GetType(void)
Get type.
bool operator()(Ptr< PriorityUlJob > &left, Ptr< PriorityUlJob > &right) const
comparison operator
Simulation virtual time values and global simulation resolution.
Smart pointer class similar to boost::intrusive_ptr.
Time GetPeriod(void)
Get period.
ReqType
Request type enumeration.
void SetDeadline(Time deadline)
Set deadline.
Time m_releaseTime
The time after which the job can be processed.
void SetSize(uint32_t size)
Set size.
this class implements a structure to compute the priority of service flows
Ptr< UlJob > GetUlJob(void)
Get UL job functiion.
SSRecord * m_ssRecord
Pointer to SSRecord.
Time GetDeadline(void)
Get deadline.
void SetReleaseTime(Time releaseTime)
Set release time.
void SetPeriod(Time period)
Set period.
SortProcessPtr structure.
enum ServiceFlow::SchedulingType m_schedulingType
Scheduling type of flow.
Time GetReleaseTime(void)
Get release time.
friend bool operator==(const UlJob &a, const UlJob &b)
equality operator
uint8_t m_retryCount
retry count
Time m_deadline
Request should be satisfied by this time.
void SetSsRecord(SSRecord *ssRecord)
Set SS record.
bool operator()(PriorityUlJob &left, PriorityUlJob &right) const
comparison operator
void SetPriority(int priority)
Set priority.
SSRecord * GetSsRecord(void)
Get SS record.
void SetServiceFlow(ServiceFlow *serviceFlow)
Set service flow.
ReqType m_type
Type of request, DATA or Unicast req slots.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
This class implements service flows as described by the IEEE-802.16 standard.
void SetUlJob(Ptr< UlJob > job)
Set UL job.
Time m_period
For periodic jobs.
uint32_t m_size
Number of minislots requested.
int m_jitterSamples
jitter samples
int m_priority
the priority
double m_ugsJitter
The jitter in the grant, valid only for UGS flows.
JobPriority
Job priority enumeration.
void SetSchedulingType(ServiceFlow::SchedulingType schedulingType)
Set scheduling type.
ServiceFlow * GetServiceFlow(void)
Get service flow.
PriorityUlJob()
this class implements an auxiliary struct to compute the priority of the rtPS and nrtPS in the interm...
ServiceFlow * m_serviceFlow
service flow
This class is used by the base station to store some information related to subscriber station in the...
A base class which provides memory management and object aggregation.
int GetPriority(void)
Get priority.
enum ServiceFlow::SchedulingType GetSchedulingType(void)
Get scheduling type.
uint32_t GetSize(void)
Get size.
uint8_t m_flag
To delete or not.
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
double m_last_jitterCalTime
Last time avg jitter was calculated.
Ptr< UlJob > m_job
the job
void SetType(ReqType type)
Set type.