A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
component-carrier-enb.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 Danilo Abrignani
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Danilo Abrignani <danilo.abrignani@unibo.it>
7 */
8
9#ifndef COMPONENT_CARRIER_ENB_H
10#define COMPONENT_CARRIER_ENB_H
11
12#include "component-carrier.h"
13#include "lte-enb-phy.h"
14
15#include <ns3/nstime.h>
16#include <ns3/object.h>
17#include <ns3/packet.h>
18#include <ns3/pointer.h>
19
20namespace ns3
21{
22
23class LteEnbMac;
24class FfMacScheduler;
25class LteFfrAlgorithm;
26
27/**
28 * \ingroup lte
29 *
30 * Defines a single carrier for enb, and contains pointers to LteEnbPhy,
31 * LteEnbMac, LteFfrAlgorithm, and FfMacScheduler objects.
32 *
33 */
35{
36 public:
37 /**
38 * \brief Get the type ID.
39 * \return the object TypeId
40 */
41 static TypeId GetTypeId();
42
44
45 ~ComponentCarrierEnb() override;
46 void DoDispose() override;
47
48 /**
49 * \return a pointer to the physical layer.
50 */
52
53 /**
54 * \return a pointer to the MAC layer.
55 */
57
58 /**
59 * \return a pointer to the Ffr Algorithm.
60 */
62
63 /**
64 * \return a pointer to the Mac Scheduler.
65 */
67
68 /**
69 * Set the LteEnbPhy
70 * \param s a pointer to the LteEnbPhy
71 */
72 void SetPhy(Ptr<LteEnbPhy> s);
73 /**
74 * Set the LteEnbMac
75 * \param s a pointer to the LteEnbMac
76 */
77 void SetMac(Ptr<LteEnbMac> s);
78
79 /**
80 * Set the FfMacScheduler Algorithm
81 * \param s a pointer to the FfMacScheduler
82 */
84
85 /**
86 * Set the LteFfrAlgorithm
87 * \param s a pointer to the LteFfrAlgorithm
88 */
90
91 protected:
92 void DoInitialize() override;
93
94 private:
95 Ptr<LteEnbPhy> m_phy; ///< the Phy instance of this eNodeB component carrier
96 Ptr<LteEnbMac> m_mac; ///< the MAC instance of this eNodeB component carrier
97 Ptr<FfMacScheduler> m_scheduler; ///< the scheduler instance of this eNodeB component carrier
99 m_ffrAlgorithm; ///< the FFR algorithm instance of this eNodeB component carrier
100};
101
102} // namespace ns3
103
104#endif /* COMPONENT_CARRIER_H */
Defines a Base station, that is a ComponentCarrier but with a cell Id.
Defines a single carrier for enb, and contains pointers to LteEnbPhy, LteEnbMac, LteFfrAlgorithm,...
void DoInitialize() override
Initialize() implementation.
void DoDispose() override
Destructor implementation.
Ptr< LteFfrAlgorithm > GetFfrAlgorithm()
static TypeId GetTypeId()
Get the type ID.
Ptr< FfMacScheduler > m_scheduler
the scheduler instance of this eNodeB component carrier
Ptr< LteEnbMac > m_mac
the MAC instance of this eNodeB component carrier
void SetFfrAlgorithm(Ptr< LteFfrAlgorithm > s)
Set the LteFfrAlgorithm.
Ptr< LteFfrAlgorithm > m_ffrAlgorithm
the FFR algorithm instance of this eNodeB component carrier
void SetMac(Ptr< LteEnbMac > s)
Set the LteEnbMac.
void SetFfMacScheduler(Ptr< FfMacScheduler > s)
Set the FfMacScheduler Algorithm.
Ptr< FfMacScheduler > GetFfMacScheduler()
Ptr< LteEnbPhy > m_phy
the Phy instance of this eNodeB component carrier
void SetPhy(Ptr< LteEnbPhy > s)
Set the LteEnbPhy.
Smart pointer class similar to boost::intrusive_ptr.
a unique identifier for an interface.
Definition type-id.h:48
Every class exported by the ns3 library is enclosed in the ns3 namespace.