A Discrete-Event Network Simulator
API
uan-transducer-hd.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2009 University of Washington
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: Leonard Tracy <lentracy@gmail.com>
19  */
20 
21 #ifndef UAN_TRANSDUCER_HD_H
22 #define UAN_TRANSDUCER_HD_H
23 
24 #include "uan-transducer.h"
25 #include "ns3/simulator.h"
26 namespace ns3 {
27 
37 {
38 public:
40  UanTransducerHd ();
42  virtual ~UanTransducerHd ();
43 
48  static TypeId GetTypeId (void);
49 
50  // inherited methods
51  virtual State GetState (void) const;
52  virtual bool IsRx (void) const;
53  virtual bool IsTx (void) const;
54  virtual const ArrivalList &GetArrivalList (void) const;
55  virtual void Receive (Ptr<Packet> packet, double rxPowerDb, UanTxMode txMode, UanPdp pdp);
56  virtual void Transmit (Ptr<UanPhy> src, Ptr<Packet> packet, double txPowerDb, UanTxMode txMode);
57  virtual void SetChannel (Ptr<UanChannel> chan);
58  virtual Ptr<UanChannel> GetChannel (void) const;
59  virtual void AddPhy (Ptr<UanPhy>);
60  virtual const UanPhyList &GetPhyList (void) const;
61  virtual void Clear (void);
62 
63 private:
70  bool m_cleared;
71 
77  void RemoveArrival (UanPacketArrival arrival);
79  void EndTx (void);
80 protected:
81  virtual void DoDispose ();
82 
83 }; // class UanTransducerHd
84 
85 } // namespace ns3
86 
87 #endif /* UAN_TRANSDUCER_HD_H */
static TypeId GetTypeId(void)
Register this type.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
EventId m_endTxEvent
Event scheduled for end of transmission.
void EndTx(void)
Handle end of transmission event.
std::list< Ptr< UanPhy > > UanPhyList
List of UanPhy objects.
virtual const UanPhyList & GetPhyList(void) const
Get the list of physical layer above this transducer.
virtual bool IsTx(void) const
Is the state transmitting?
ArrivalList m_arrivalList
List of arriving packets which overlap in time.
Ptr< UanChannel > m_channel
The attached channel.
virtual void Receive(Ptr< Packet > packet, double rxPowerDb, UanTxMode txMode, UanPdp pdp)
Notify this object that a new packet has arrived at this nodes location.
bool m_cleared
Flab when we've been cleared.
virtual void DoDispose()
Destructor implementation.
State
Transducer state.
virtual Ptr< UanChannel > GetChannel(void) const
Get the attached channel.
virtual ~UanTransducerHd()
Dummy destructor, see DoDispose.
The power delay profile returned by propagation models.
Abstraction of packet modulation information.
Definition: uan-tx-mode.h:41
Virtual base for Transducer objects.
std::list< UanPacketArrival > ArrivalList
List of arriving packets overlapping in time.
virtual const ArrivalList & GetArrivalList(void) const
Get the list of overlapped (in time) packets at this transducer.
UanTransducerHd()
Constructor.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void RemoveArrival(UanPacketArrival arrival)
Remove an entry from the arrival list.
Time m_endTxTime
Time at which transmission will be completed.
virtual void SetChannel(Ptr< UanChannel > chan)
Attach this transducer to a channel.
virtual void AddPhy(Ptr< UanPhy >)
Attach a physical network layer above this transducer.
An identifier for simulation events.
Definition: event-id.h:53
virtual void Clear(void)
Clears all pointer references.
virtual State GetState(void) const
Get the transducer state.
UanPhyList m_phyList
List of physical layers attached above this tranducer.
virtual void Transmit(Ptr< UanPhy > src, Ptr< Packet > packet, double txPowerDb, UanTxMode txMode)
Transmit a packet from this transducer.
virtual bool IsRx(void) const
Is the state receiving (or available for reception)?
a unique identifier for an interface.
Definition: type-id.h:58
State m_state
Transducer state.
Half duplex implementation of transducer object.
Class consisting of packet arrival information (Time, RxPower, mode, PDP).