A Discrete-Event Network Simulator
API
lte-spectrum-signal-parameters.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2011 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: Nicola Baldo <nbaldo@cttc.es>
19  * Modified by Marco Miozzo <mmiozzo@cttc.es> (add data and ctrl diversity)
20  */
21 
22 #include <ns3/log.h>
23 #include <ns3/packet-burst.h>
24 #include <ns3/ptr.h>
25 #include <ns3/lte-spectrum-signal-parameters.h>
26 #include <ns3/lte-control-messages.h>
27 
28 
29 namespace ns3 {
30 
31 NS_LOG_COMPONENT_DEFINE ("LteSpectrumSignalParameters");
32 
34 {
35  NS_LOG_FUNCTION (this);
36 }
37 
40 {
41  NS_LOG_FUNCTION (this << &p);
42  packetBurst = p.packetBurst->Copy ();
43 }
44 
47 {
48  NS_LOG_FUNCTION (this);
49  // Ideally we would use:
50  // return Copy<LteSpectrumSignalParameters> (*this);
51  // but for some reason it doesn't work. Another alternative is
52  // return Copy<LteSpectrumSignalParameters> (this);
53  // but it causes a double creation of the object, hence it is less efficient.
54  // The solution below is copied from the implementation of Copy<> (Ptr<>) in ptr.h
56  return lssp;
57 }
58 
59 
60 
62 {
63  NS_LOG_FUNCTION (this);
64 }
65 
68 {
69  NS_LOG_FUNCTION (this << &p);
70  cellId = p.cellId;
71  if (p.packetBurst)
72  {
73  packetBurst = p.packetBurst->Copy ();
74  }
76 }
77 
80 {
81  NS_LOG_FUNCTION (this);
82  // Ideally we would use:
83  // return Copy<LteSpectrumSignalParametersDataFrame> (*this);
84  // but for some reason it doesn't work. Another alternative is
85  // return Copy<LteSpectrumSignalParametersDataFrame> (this);
86  // but it causes a double creation of the object, hence it is less efficient.
87  // The solution below is copied from the implementation of Copy<> (Ptr<>) in ptr.h
89  return lssp;
90 }
91 
92 
93 
95 {
96  NS_LOG_FUNCTION (this);
97 }
98 
101 {
102  NS_LOG_FUNCTION (this << &p);
103  cellId = p.cellId;
104  pss = p.pss;
106 }
107 
110 {
111  NS_LOG_FUNCTION (this);
112  // Ideally we would use:
113  // return Copy<LteSpectrumSignalParametersDlCtrlFrame> (*this);
114  // but for some reason it doesn't work. Another alternative is
115  // return Copy<LteSpectrumSignalParametersDlCtrlFrame> (this);
116  // but it causes a double creation of the object, hence it is less efficient.
117  // The solution below is copied from the implementation of Copy<> (Ptr<>) in ptr.h
119  return lssp;
120 }
121 
122 
124 {
125  NS_LOG_FUNCTION (this);
126 }
127 
130 {
131  NS_LOG_FUNCTION (this << &p);
132  cellId = p.cellId;
133 }
134 
137 {
138  NS_LOG_FUNCTION (this);
139  // Ideally we would use:
140  // return Copy<LteSpectrumSignalParametersUlSrsFrame> (*this);
141  // but for some reason it doesn't work. Another alternative is
142  // return Copy<LteSpectrumSignalParametersUlSrsFrame> (this);
143  // but it causes a double creation of the object, hence it is less efficient.
144  // The solution below is copied from the implementation of Copy<> (Ptr<>) in ptr.h
146  return lssp;
147 }
148 
149 
150 
151 
152 
153 
154 
155 } // namespace ns3
std::list< Ptr< LteControlMessage > > ctrlMsgList
control message list
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:202
Signal parameters for Lte Data Frame (PDSCH), and eventually after some control messages through othe...
virtual Ptr< SpectrumSignalParameters > Copy()
make a "virtual" copy of this class, where "virtual" refers to the fact that if the actual object is ...
virtual Ptr< SpectrumSignalParameters > Copy()
make a "virtual" copy of this class, where "virtual" refers to the fact that if the actual object is ...
virtual Ptr< SpectrumSignalParameters > Copy()
make a "virtual" copy of this class, where "virtual" refers to the fact that if the actual object is ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< PacketBurst > packetBurst
The packet burst being transmitted with this signal.
Signal parameters for Lte DL Ctrl Frame (RS, PCFICH and PDCCH)
This struct provides the generic signal representation to be used by all wireless technologies...
Ptr< PacketBurst > packetBurst
The packet burst being transmitted with this signal.
virtual Ptr< SpectrumSignalParameters > Copy()
make a "virtual" copy of this class, where "virtual" refers to the fact that if the actual object is ...
std::list< Ptr< LteControlMessage > > ctrlMsgList
the control message list