A Discrete-Event Network Simulator
API
ss-scheduler.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2007,2008 INRIA
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  *
17  * Author: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
18  */
19 
20 /* SS outbound scheduler as per in Section 6.3.5.1 */
21 
22 #ifndef SS_SCHEDULER_H
23 #define SS_SCHEDULER_H
24 
25 #include "wimax-mac-header.h"
26 #include "wimax-phy.h"
27 
28 #include "ns3/packet-burst.h"
29 #include "ns3/packet.h"
30 
31 #include <stdint.h>
32 
33 namespace ns3
34 {
35 
36 class SubscriberStationNetDevice;
37 class WimaxConnection;
38 
43 class SSScheduler : public Object
44 {
45  public:
50  static TypeId GetTypeId();
57  ~SSScheduler() override;
58 
59  // Delete copy constructor and assignment operator to avoid misuse
60  SSScheduler(const SSScheduler&) = delete;
61  SSScheduler& operator=(const SSScheduler&) = delete;
62 
67  void SetPollMe(bool pollMe);
72  bool GetPollMe() const;
80  Ptr<PacketBurst> Schedule(uint16_t availableSymbols,
81  WimaxPhy::ModulationType modulationType,
82  MacHeaderType::HeaderType packetType,
83  Ptr<WimaxConnection>& connection);
84 
85  void DoDispose() override;
86 
87  private:
94  bool m_pollMe;
95 };
96 
97 } // namespace ns3
98 
99 #endif /* SS_SCHEDULER_H */
HeaderType
Header type enumeration.
A base class which provides memory management and object aggregation.
Definition: object.h:89
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
SSScheduler(Ptr< SubscriberStationNetDevice > ss)
Constructor.
Definition: ss-scheduler.cc:49
bool m_pollMe
poll me flag
Definition: ss-scheduler.h:94
SSScheduler(const SSScheduler &)=delete
void DoDispose() override
Destructor implementation.
Definition: ss-scheduler.cc:60
Ptr< PacketBurst > Schedule(uint16_t availableSymbols, WimaxPhy::ModulationType modulationType, MacHeaderType::HeaderType packetType, Ptr< WimaxConnection > &connection)
Definition: ss-scheduler.cc:78
static TypeId GetTypeId()
Get the type ID.
Definition: ss-scheduler.cc:43
Ptr< SubscriberStationNetDevice > m_ss
the subscriber station
Definition: ss-scheduler.h:93
void SetPollMe(bool pollMe)
Set poll me value.
Definition: ss-scheduler.cc:66
Ptr< WimaxConnection > SelectConnection()
Select connection.
SSScheduler & operator=(const SSScheduler &)=delete
bool GetPollMe() const
Get the poll me value.
Definition: ss-scheduler.cc:72
~SSScheduler() override
Definition: ss-scheduler.cc:55
a unique identifier for an interface.
Definition: type-id.h:59
ModulationType
ModulationType enumeration.
Definition: wimax-phy.h:54
Every class exported by the ns3 library is enclosed in the ns3 namespace.