A Discrete-Event Network Simulator
API
wifi-mac-queue-item.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2005, 2009 INRIA
4  * Copyright (c) 2009 MIRKO BANCHI
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation;
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
20  * Mirko Banchi <mk.banchi@gmail.com>
21  * Stefano Avallone <stavallo@unina.it>
22  */
23 
24 #ifndef WIFI_MAC_QUEUE_ITEM_H
25 #define WIFI_MAC_QUEUE_ITEM_H
26 
27 #include "ns3/queue.h"
28 #include "wifi-mac-header.h"
29 
30 namespace ns3 {
31 
32 class QosBlockedDestinations;
33 
40 class WifiMacQueueItem : public SimpleRefCount<WifiMacQueueItem>
41 {
42 public:
49 
50  virtual ~WifiMacQueueItem ();
51 
56  Ptr<const Packet> GetPacket (void) const;
57 
62  const WifiMacHeader & GetHeader (void) const;
63 
70 
75  Time GetTimeStamp (void) const;
76 
82  uint32_t GetSize (void) const;
83 
84 private:
104 
108 };
109 
110 
111 // The following explicit template instantiation declaration prevents modules
112 // including this header file from implicitly instantiating Queue<WifiMacQueueItem>.
113 // This would cause python examples using wifi to crash at runtime with the
114 // following error message: "Trying to allocate twice the same uid:
115 // ns3::Queue<WifiMacQueueItem>"
116 extern template class Queue<WifiMacQueueItem>;
117 
118 
119 } //namespace ns3
120 
121 #endif /* WIFI_MAC_QUEUE_ITEM_H */
Ptr< const Packet > GetPacket(void) const
Get the packet stored in this item.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
Mac48Address GetAddress(enum WifiMacHeader::AddressType type) const
Return the requested address present in the header.
Introspection did not find any typical Config paths.
Time GetTimeStamp(void) const
Get the timestamp included in this item.
Ptr< const Packet > m_packet
The packet contained in this queue item.
WifiMacQueueItem stores (const) packets along with their Wifi MAC headers and the time when they were...
Time m_tstamp
timestamp when the packet arrived at the queue
AddressType
Address types.
WifiMacQueueItem()
Default constructor.
WifiMacHeader m_header
Wifi MAC header associated with the packet.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
const WifiMacHeader & GetHeader(void) const
Get the header stored in this item.
an EUI-48 address
Definition: mac48-address.h:43
WifiMacQueueItem & operator=(const WifiMacQueueItem &)
Assignment operator.
uint32_t GetSize(void) const
Return the size of the packet included in this item.
A template-based reference counting class.
Implements the IEEE 802.11 MAC header.