A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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:
131  MemberLteAnrSapProvider (C* owner);
132 
133  // inherited from LteAnrSapProvider
134  virtual void ReportUeMeas (LteRrcSap::MeasResults measResults);
135  virtual void AddNeighbourRelation (uint16_t cellId);
136  virtual bool GetNoRemove (uint16_t cellId) const;
137  virtual bool GetNoHo (uint16_t cellId) const;
138  virtual bool GetNoX2 (uint16_t cellId) const;
139 
140 private:
143 
144 }; // end of class MemberLteAnrSapProvider
145 
146 
147 template <class C>
149  : m_owner (owner)
150 {
151 }
152 
153 
154 template <class C>
155 void
157 {
158  m_owner->DoReportUeMeas (measResults);
159 }
160 
161 
162 template <class C>
163 void
165 {
166  m_owner->DoAddNeighbourRelation (cellId);
167 }
168 
169 
170 template <class C>
171 bool
173 {
174  return m_owner->DoGetNoRemove (cellId);
175 }
176 
177 
178 template <class C>
179 bool
180 MemberLteAnrSapProvider<C>::GetNoHo (uint16_t cellId) const
181 {
182  return m_owner->DoGetNoHo (cellId);
183 }
184 
185 
186 template <class C>
187 bool
188 MemberLteAnrSapProvider<C>::GetNoX2 (uint16_t cellId) const
189 {
190  return m_owner->DoGetNoX2 (cellId);
191 }
192 
193 
194 
199 template <class C>
201 {
202 public:
203  MemberLteAnrSapUser (C* owner);
204 
205  // inherited from LteAnrSapUser
206  virtual uint8_t AddUeMeasReportConfigForAnr (LteRrcSap::ReportConfigEutra reportConfig);
207 
208 private:
211 
212 }; // end of class MemberLteAnrSapUser
213 
214 
215 template <class C>
217  : m_owner (owner)
218 {
219 }
220 
221 
222 template <class C>
223 uint8_t
225 {
226  return m_owner->DoAddUeMeasReportConfigForAnr (reportConfig);
227 }
228 
229 
230 } // end of namespace ns3
231 
232 
233 #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:172
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:180
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:258
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to the ANC instance.
virtual ~LteAnrSapUser()
Definition: lte-anr-sap.cc:33
virtual void AddNeighbourRelation(uint16_t cellId)
Add a new Neighbour Relation entry.
Definition: lte-anr-sap.h:164
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
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)
Send a UE measurement report to the ANC instance.
Definition: lte-anr-sap.h:156
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:224
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
Definition: lte-anr-sap.h:37
Template for the implementation of the LteAnrSapUser as a member of an owner class of type C to which...
Definition: lte-anr-sap.h:200
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:188
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