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/nstime.h"
28 #include "wifi-mac-header.h"
29 
30 namespace ns3 {
31 
32 class QosBlockedDestinations;
33 class Packet;
34 
41 class WifiMacQueueItem : public SimpleRefCount<WifiMacQueueItem>
42 {
43 public:
50 
57  WifiMacQueueItem (Ptr<const Packet> p, const WifiMacHeader & header, Time tstamp);
58 
59  virtual ~WifiMacQueueItem ();
60 
65  Ptr<const Packet> GetPacket (void) const;
66 
71  const WifiMacHeader & GetHeader (void) const;
72 
77  WifiMacHeader & GetHeader (void);
78 
84 
89  Time GetTimeStamp (void) const;
90 
97  uint32_t GetSize (void) const;
98 
103  virtual void Print (std::ostream &os) const;
104 
105 private:
109 };
110 
118 std::ostream& operator<< (std::ostream& os, const WifiMacQueueItem &item);
119 
120 } //namespace ns3
121 
122 #endif /* WIFI_MAC_QUEUE_ITEM_H */
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
virtual void Print(std::ostream &os) const
Print the item contents.
uint32_t GetSize(void) const
Return the size of the packet stored by this item, including header size and trailer size...
Time GetTimeStamp(void) const
Get the timestamp included in this item.
Mac48Address GetDestinationAddress(void) const
Return the destination address present in the header.
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...
const WifiMacHeader & GetHeader(void) const
Get the header stored in this item.
Time m_tstamp
timestamp when the packet arrived at the queue
WifiMacHeader m_header
Wifi MAC header associated with the packet.
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition: angles.cc:42
Ptr< const Packet > GetPacket(void) const
Get the packet stored in this item.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
WifiMacQueueItem(Ptr< const Packet > p, const WifiMacHeader &header)
Create a Wifi MAC queue item containing a packet and a Wifi MAC header.
an EUI-48 address
Definition: mac48-address.h:43
A template-based reference counting class.
Implements the IEEE 802.11 MAC header.