A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ul-job.cc
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c)
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Juliana Freitag Borin, Flavio Kubota and Nelson L.
19  * S. da Fonseca - wimaxgroup@lrc.ic.unicamp.br
20  */
21 
22 #include <stdint.h>
23 #include "ul-job.h"
24 
25 namespace ns3 {
26 
27 UlJob::UlJob (void) : m_deadline (Seconds (0)), m_size (0)
28 {
29 }
30 
31 UlJob::~UlJob (void)
32 {
33 }
34 
35 SSRecord*
36 UlJob::GetSsRecord (void)
37 {
38  return m_ssRecord;
39 }
40 void
41 UlJob::SetSsRecord (SSRecord* ssRecord)
42 {
43  m_ssRecord = ssRecord;
44 }
45 
46 enum
47 ServiceFlow::SchedulingType UlJob::GetSchedulingType (void)
48 {
49  return m_schedulingType;
50 }
51 
52 void
53 UlJob::SetSchedulingType (ServiceFlow::SchedulingType schedulingType)
54 {
55  m_schedulingType = schedulingType;
56 }
57 
58 ReqType
59 UlJob::GetType (void)
60 {
61  return m_type;
62 }
63 
64 void
65 UlJob::SetType (ReqType type)
66 {
67  m_type = type;
68 }
69 
70 ServiceFlow *
71 UlJob::GetServiceFlow (void)
72 {
73  return m_serviceFlow;
74 }
75 
76 void
77 UlJob::SetServiceFlow (ServiceFlow *serviceFlow)
78 {
79  m_serviceFlow = serviceFlow;
80 }
81 
82 Time
83 UlJob::GetReleaseTime (void)
84 {
85  return m_releaseTime;
86 }
87 
88 void
89 UlJob::SetReleaseTime (Time releaseTime)
90 {
91  m_releaseTime = releaseTime;
92 }
93 
94 Time
95 UlJob::GetPeriod (void)
96 {
97  return m_period;
98 }
99 void
100 UlJob::SetPeriod (Time period)
101 {
102  m_period = period;
103 }
104 
105 Time
106 UlJob::GetDeadline (void)
107 {
108  return m_deadline;
109 }
110 void
111 UlJob::SetDeadline (Time deadline)
112 {
113  m_deadline = deadline;
114 }
115 
116 uint32_t
117 UlJob::GetSize (void)
118 {
119  return m_size;
120 }
121 
122 void
123 UlJob::SetSize (uint32_t size)
124 {
125  m_size = size;
126 }
127 
128 bool operator == (const UlJob &a, const UlJob &b)
129 {
130  UlJob A = a;
131  UlJob B = b;
132 
133  if ((A.GetServiceFlow () == B.GetServiceFlow ()) && (A.GetSsRecord () == B.GetSsRecord ()))
134  {
135  return true;
136  }
137  return false;
138 }
139 
141 {
142 }
143 
144 int
145 PriorityUlJob::GetPriority (void)
146 {
147  return m_priority;
148 }
149 
150 void
151 PriorityUlJob::SetPriority (int priority)
152 {
153  m_priority = priority;
154 }
155 
156 Ptr<UlJob>
157 PriorityUlJob::GetUlJob (void)
158 {
159  return m_job;
160 }
161 void
162 PriorityUlJob::SetUlJob (Ptr<UlJob> job)
163 {
164  m_job = job;
165 }
166 
167 } // namespace ns3
Time Seconds(double seconds)
create ns3::Time instances in units of seconds.
Definition: nstime.h:586
PriorityUlJob()
this class implements an auxiliar struct to compute the priority of the rtPS and nrtPS in the interme...
Definition: ul-job.cc:140