1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007,2008 INRIA
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: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19  */
20 
21 
22 
23 #ifndef SEND_PARAMS_H
24 #define SEND_PARAMS_H
25 
26 #include <stdint.h>
27 
28 namespace ns3 {
29 
30 class WimaxPhy;
31 
32 /**
33  * \ingroup wimax
34  * \brief The SendParams class defines the parameters with which Send() function of
35  *  a particular PHY is called. The sole purpose of this class is to allow
36  *  defining the pure virtual Send() function in the PHY base-class (WimaxPhy).
37  *  This class shall be sub-classed every time a new PHY is integrated (i.e.,
38  *  a new sub-class of WimaxPhy is created) which requires different or
39  *  additional parameters to call its Send() function. For example as it is
40  *  seen here, it has been sub-classed for the OFDM PHY layer since its Send()
41  *  function requires two additional parameters.
42  */
43 class SendParams
44 {
45 public:
46   SendParams ();
47   virtual ~SendParams ();
48 
49 private:
50 };
51 
52 } // namespace ns3
53 
54 #endif /* SEND_PARAMS_H */
55 
56 #ifndef OFDM_SEND_PARAMS_H
57 #define OFDM_SEND_PARAMS_H
58 
59 #include <stdint.h>
60 #include "ns3/packet-burst.h"
61 
62 namespace ns3 {
63 
64 /**
65  * OfdmSendParams class
66  */
67 class OfdmSendParams : public SendParams
68 {
69 public:
70   /**
71    * Constructor
72    *
73    * \param burst packet burst object
74    * \param modulationType modulation type
75    * \param direction the direction
76    */
77   OfdmSendParams (Ptr<PacketBurst> burst, uint8_t modulationType, uint8_t direction);
78   ~OfdmSendParams ();
79   /**
80    * \return the packet burst
81    */
GetBurst()82   Ptr<PacketBurst> GetBurst () const
83   {
84     return m_burst;
85   }
86 
87   /**
88    * \return the modulation type
89    */
GetModulationType()90   uint8_t GetModulationType () const
91   {
92     return m_modulationType;
93   }
94 
95   /**
96    * \return the direction
97    */
GetDirection()98   uint8_t GetDirection () const
99   {
100     return m_direction;
101   }
102 
103 private:
104   Ptr<PacketBurst> m_burst; ///< packet burst
105   uint8_t m_modulationType; ///< modulation type
106   uint8_t m_direction; ///< direction
107 };
108 
109 } // namespace ns3
110 
111 #endif /* OFDM_SEND_PARAMS_H */
112