A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ss-scheduler.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2007,2008 INRIA
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
7 */
8
9/* SS outbound scheduler as per in Section 6.3.5.1 */
10
11#ifndef SS_SCHEDULER_H
12#define SS_SCHEDULER_H
13
14#include "wimax-mac-header.h"
15#include "wimax-phy.h"
16
17#include "ns3/packet-burst.h"
18#include "ns3/packet.h"
19
20#include <stdint.h>
21
22namespace ns3
23{
24
25class SubscriberStationNetDevice;
26class WimaxConnection;
27
28/**
29 * \ingroup wimax
30 * \param SSScheduler class
31 */
32class SSScheduler : public Object
33{
34 public:
35 /**
36 * \brief Get the type ID.
37 * \return the object TypeId
38 */
39 static TypeId GetTypeId();
40 /**
41 * Constructor
42 *
43 * \param ss subscriber station device
44 */
46 ~SSScheduler() override;
47
48 // Delete copy constructor and assignment operator to avoid misuse
49 SSScheduler(const SSScheduler&) = delete;
51
52 /**
53 * Set poll me value
54 * \param pollMe the poll me flag
55 */
56 void SetPollMe(bool pollMe);
57 /**
58 * Get the poll me value
59 * \returns the poll me flag
60 */
61 bool GetPollMe() const;
62 /**
63 * \return a list of packet to be sent in the next opportunity
64 * \param availableSymbols the available resources in symbols
65 * \param modulationType the used modulation
66 * \param packetType the type of packets to select from
67 * \param connection the connection from which packets will be selected
68 */
69 Ptr<PacketBurst> Schedule(uint16_t availableSymbols,
70 WimaxPhy::ModulationType modulationType,
72 Ptr<WimaxConnection>& connection);
73
74 void DoDispose() override;
75
76 private:
77 /**
78 * Select connection
79 * \returns pointer to the wimax connection
80 */
82 Ptr<SubscriberStationNetDevice> m_ss; ///< the subscriber station
83 bool m_pollMe; ///< poll me flag
84};
85
86} // namespace ns3
87
88#endif /* SS_SCHEDULER_H */
HeaderType
Header type enumeration.
A base class which provides memory management and object aggregation.
Definition object.h:78
Smart pointer class similar to boost::intrusive_ptr.
SSScheduler(Ptr< SubscriberStationNetDevice > ss)
Constructor.
SSScheduler & operator=(const SSScheduler &)=delete
bool m_pollMe
poll me flag
SSScheduler(const SSScheduler &)=delete
void DoDispose() override
Destructor implementation.
Ptr< PacketBurst > Schedule(uint16_t availableSymbols, WimaxPhy::ModulationType modulationType, MacHeaderType::HeaderType packetType, Ptr< WimaxConnection > &connection)
static TypeId GetTypeId()
Get the type ID.
Ptr< SubscriberStationNetDevice > m_ss
the subscriber station
void SetPollMe(bool pollMe)
Set poll me value.
Ptr< WimaxConnection > SelectConnection()
Select connection.
bool GetPollMe() const
Get the poll me value.
~SSScheduler() override
a unique identifier for an interface.
Definition type-id.h:48
ModulationType
ModulationType enumeration.
Definition wimax-phy.h:43
Every class exported by the ns3 library is enclosed in the ns3 namespace.