22 #include "wimax-connection.h"
23 #include "ns3/pointer.h"
25 #include "ns3/uinteger.h"
26 #include "service-flow.h"
30 NS_OBJECT_ENSURE_REGISTERED (WimaxConnection);
32 TypeId WimaxConnection::GetTypeId (
void)
34 static TypeId tid = TypeId (
"ns3::WimaxConnection")
38 .AddAttribute (
"Type",
40 EnumValue (Cid::INITIAL_RANGING),
41 MakeEnumAccessor (&WimaxConnection::GetType),
42 MakeEnumChecker (Cid::BROADCAST,
57 .AddAttribute (
"TxQueue",
61 MakePointerChecker<WimaxMacQueue> ());
65 WimaxConnection::WimaxConnection (Cid cid,
enum Cid::Type type)
68 m_queue (CreateObject<WimaxMacQueue> (1024)),
73 WimaxConnection::~WimaxConnection (
void)
85 WimaxConnection::GetCid (
void)
const
91 WimaxConnection::GetType (
void)
const
105 m_serviceFlow = serviceFlow;
111 return m_serviceFlow;
117 return m_serviceFlow->GetSchedulingType ();
124 return m_queue->Enqueue (packet, hdrType, hdr);
130 return m_queue->Dequeue (packetType);
136 return m_queue->Dequeue (packetType, availableByte);
142 return !m_queue->IsEmpty ();
148 return !m_queue->IsEmpty (packetType);
152 WimaxConnection::GetTypeStr (
void)
const
159 case Cid::INITIAL_RANGING:
160 return "Initial Ranging";
185 return m_fragmentsQueue;
191 m_fragmentsQueue.push_back (fragment);
197 m_fragmentsQueue.clear ();
void FragmentEnqueue(Ptr< const Packet > fragment)
enqueue a received packet (that is a fragment) into the fragments queue
uint8_t GetSchedulingType(void) const
ServiceFlow * GetServiceFlow(void) const
#define NS_FATAL_ERROR(msg)
fatal error handling
Ptr< WimaxMacQueue > GetQueue(void) const
const FragmentsQueue GetFragmentsQueue(void) const
get a queue of received fragments
virtual void DoDispose(void)
bool HasPackets(void) const
void ClearFragmentsQueue(void)
delete all enqueued fragments
bool Enqueue(Ptr< Packet > packet, const MacHeaderType &hdrType, const GenericMacHeader &hdr)
enqueue a packet in the queue of the connection
Ptr< Packet > Dequeue(MacHeaderType::HeaderType packetType=MacHeaderType::HEADER_TYPE_GENERIC)
dequeue a packet from the queue of the connection
void SetServiceFlow(ServiceFlow *serviceFlow)
set the service flow associated to this connection