A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
lte-pdcp-sap.h
Go to the documentation of this file.
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Manuel Requena <manuel.requena@cttc.es>
19
*/
20
21
#ifndef LTE_PDCP_SAP_H
22
#define LTE_PDCP_SAP_H
23
24
#include "ns3/packet.h"
25
26
namespace
ns3 {
27
35
class
LtePdcpSapProvider
36
{
37
public
:
38
virtual
~LtePdcpSapProvider
();
39
43
struct
TransmitRrcPduParameters
44
{
45
Ptr<Packet>
rrcPdu
;
46
uint16_t
rnti
;
47
uint8_t
lcid
;
48
};
49
57
virtual
void
TransmitRrcPdu
(
TransmitRrcPduParameters
params) = 0;
58
};
59
60
68
class
LtePdcpSapUser
69
{
70
public
:
71
virtual
~LtePdcpSapUser
();
72
76
struct
ReceiveRrcPduParameters
77
{
78
Ptr<Packet>
rrcPdu
;
79
uint16_t
rnti
;
80
uint8_t
lcid
;
81
};
82
88
virtual
void
ReceiveRrcPdu
(
ReceiveRrcPduParameters
params) = 0;
89
};
90
92
93
template
<
class
C>
94
class
LtePdcpSpecificLtePdcpSapProvider
:
public
LtePdcpSapProvider
95
{
96
public
:
97
LtePdcpSpecificLtePdcpSapProvider
(C* pdcp);
98
99
// Interface implemented from LtePdcpSapProvider
100
virtual
void
TransmitRrcPdu
(
TransmitRrcPduParameters
params);
101
102
private
:
103
LtePdcpSpecificLtePdcpSapProvider
();
104
C*
m_pdcp
;
105
};
106
107
template
<
class
C>
108
LtePdcpSpecificLtePdcpSapProvider<C>::LtePdcpSpecificLtePdcpSapProvider
(C* pdcp)
109
: m_pdcp (pdcp)
110
{
111
}
112
113
template
<
class
C>
114
LtePdcpSpecificLtePdcpSapProvider<C>::LtePdcpSpecificLtePdcpSapProvider
()
115
{
116
}
117
118
template
<
class
C>
119
void
LtePdcpSpecificLtePdcpSapProvider<C>::TransmitRrcPdu
(
TransmitRrcPduParameters
params)
120
{
121
m_pdcp->DoTransmitRrcPdu (params.
rrcPdu
);
122
}
123
125
126
template
<
class
C>
127
class
LtePdcpSpecificLtePdcpSapUser
:
public
LtePdcpSapUser
128
{
129
public
:
130
LtePdcpSpecificLtePdcpSapUser
(C* rrc);
131
132
// Interface implemented from LtePdcpSapUser
133
virtual
void
ReceiveRrcPdu
(
ReceiveRrcPduParameters
params);
134
135
private
:
136
LtePdcpSpecificLtePdcpSapUser
();
137
C*
m_rrc
;
138
};
139
140
template
<
class
C>
141
LtePdcpSpecificLtePdcpSapUser<C>::LtePdcpSpecificLtePdcpSapUser
(C* rrc)
142
: m_rrc (rrc)
143
{
144
}
145
146
template
<
class
C>
147
LtePdcpSpecificLtePdcpSapUser<C>::LtePdcpSpecificLtePdcpSapUser
()
148
{
149
}
150
151
template
<
class
C>
152
void
LtePdcpSpecificLtePdcpSapUser<C>::ReceiveRrcPdu
(
ReceiveRrcPduParameters
params)
153
{
154
m_rrc->DoReceiveRrcPdu (params);
155
}
156
157
158
}
// namespace ns3
159
160
#endif // LTE_PDCP_SAP_H
src
lte
model
lte-pdcp-sap.h
Generated on Fri Dec 21 2012 19:00:39 for ns-3 by
1.8.1.2