A Discrete-Event Network Simulator
API
lte-anr-sap.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013 Budiarto Herman
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: Budiarto Herman <budiarto.herman@magister.fi>
19  *
20  */
21 
22 #ifndef LTE_ANR_SAP_H
23 #define LTE_ANR_SAP_H
24 
25 #include <ns3/lte-rrc-sap.h>
26 
27 namespace ns3 {
28 
29 
38 {
39 public:
40  virtual ~LteAnrSapProvider ();
41 
51  virtual void ReportUeMeas (LteRrcSap::MeasResults measResults) = 0;
52 
57  virtual void AddNeighbourRelation (uint16_t cellId) = 0;
58 
65  virtual bool GetNoRemove (uint16_t cellId) const = 0;
66 
74  virtual bool GetNoHo (uint16_t cellId) const = 0;
75 
84  virtual bool GetNoX2 (uint16_t cellId) const = 0;
85 
86 }; // end of class LteAnrSapProvider
87 
88 
89 
98 {
99 public:
100  virtual ~LteAnrSapUser ();
101 
117  virtual uint8_t AddUeMeasReportConfigForAnr (LteRrcSap::ReportConfigEutra reportConfig) = 0;
118 
119 }; // end of class LteAnrSapUser
120 
121 
122 
127 template <class C>
129 {
130 public:
136  MemberLteAnrSapProvider (C* owner);
137 
138  // inherited from LteAnrSapProvider
139  virtual void ReportUeMeas (LteRrcSap::MeasResults measResults);
140  virtual void AddNeighbourRelation (uint16_t cellId);
141  virtual bool GetNoRemove (uint16_t cellId) const;
142  virtual bool GetNoHo (uint16_t cellId) const;
143  virtual bool GetNoX2 (uint16_t cellId) const;
144 
145 private:
147  C* m_owner;
148 
149 }; // end of class MemberLteAnrSapProvider
150 
151 
152 template <class C>
154  : m_owner (owner)
155 {
156 }
157 
158 
159 template <class C>
160 void
162 {
163  m_owner->DoReportUeMeas (measResults);
164 }
165 
166 
167 template <class C>
168 void
170 {
171  m_owner->DoAddNeighbourRelation (cellId);
172 }
173 
174 
175 template <class C>
176 bool
178 {
179  return m_owner->DoGetNoRemove (cellId);
180 }
181 
182 
183 template <class C>
184 bool
185 MemberLteAnrSapProvider<C>::GetNoHo (uint16_t cellId) const
186 {
187  return m_owner->DoGetNoHo (cellId);
188 }
189 
190 
191 template <class C>
192 bool
193 MemberLteAnrSapProvider<C>::GetNoX2 (uint16_t cellId) const
194 {
195  return m_owner->DoGetNoX2 (cellId);
196 }
197 
198 
199 
204 template <class C>
206 {
207 public:
213  MemberLteAnrSapUser (C* owner);
214 
215  // inherited from LteAnrSapUser
216  virtual uint8_t AddUeMeasReportConfigForAnr (LteRrcSap::ReportConfigEutra reportConfig);
217 
218 private:
220  C* m_owner;
221 
222 }; // end of class MemberLteAnrSapUser
223 
224 
225 template <class C>
227  : m_owner (owner)
228 {
229 }
230 
231 
232 template <class C>
233 uint8_t
235 {
236  return m_owner->DoAddUeMeasReportConfigForAnr (reportConfig);
237 }
238 
239 
240 } // end of namespace ns3
241 
242 
243 #endif /* LTE_ANR_SAP_H */
virtual void AddNeighbourRelation(uint16_t cellId)=0
Add a new Neighbour Relation entry.
virtual uint8_t AddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
virtual bool GetNoRemove(uint16_t cellId) const
Get the value of No Remove field of a neighbouring cell from the Neighbour Relation Table (NRT)...
Definition: lte-anr-sap.h:177
virtual bool GetNoHo(uint16_t cellId) const
Get the value of No HO field of a neighbouring cell from the Neighbour Relation Table (NRT)...
Definition: lte-anr-sap.h:185
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:354
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to the ANC instance.
virtual ~LteAnrSapUser()
Definition: lte-anr-sap.cc:33
C * m_owner
the owner class
Definition: lte-anr-sap.h:220
virtual void AddNeighbourRelation(uint16_t cellId)
Add a new Neighbour Relation entry.
Definition: lte-anr-sap.h:169
MeasResults structure.
Definition: lte-rrc-sap.h:671
virtual bool GetNoHo(uint16_t cellId) const =0
Get the value of No HO field of a neighbouring cell from the Neighbour Relation Table (NRT)...
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
Definition: lte-anr-sap.h:97
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)
Send a UE measurement report to the ANC instance.
Definition: lte-anr-sap.h:161
virtual uint8_t AddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
Definition: lte-anr-sap.h:234
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
Definition: lte-anr-sap.h:37
C * m_owner
the owner class
Definition: lte-anr-sap.h:147
Template for the implementation of the LteAnrSapUser as a member of an owner class of type C to which...
Definition: lte-anr-sap.h:205
virtual bool GetNoRemove(uint16_t cellId) const =0
Get the value of No Remove field of a neighbouring cell from the Neighbour Relation Table (NRT)...
virtual ~LteAnrSapProvider()
Definition: lte-anr-sap.cc:28
virtual bool GetNoX2(uint16_t cellId) const =0
Get the value of No X2 field of a neighbouring cell from the Neighbour Relation Table (NRT)...
virtual bool GetNoX2(uint16_t cellId) const
Get the value of No X2 field of a neighbouring cell from the Neighbour Relation Table (NRT)...
Definition: lte-anr-sap.h:193
Template for the implementation of the LteAnrSapProvider as a member of an owner class of type C to w...
Definition: lte-anr-sap.h:128