bug 500: make DcaTxop accessible through an attribute.

This commit is contained in:
Mathieu Lacage
2009-02-24 08:20:51 +01:00
parent 9cf0988230
commit fd8ba38a0e
6 changed files with 34 additions and 1 deletions

View File

@@ -24,6 +24,7 @@
#include "mac-rx-middle.h"
#include "wifi-phy.h"
#include "dcf-manager.h"
#include "ns3/pointer.h"
#include "ns3/packet.h"
#include "ns3/log.h"
@@ -42,6 +43,10 @@ AdhocWifiMac::GetTypeId (void)
static TypeId tid = TypeId ("ns3::AdhocWifiMac")
.SetParent<WifiMac> ()
.AddConstructor<AdhocWifiMac> ()
.AddAttribute ("DcaTxop", "The DcaTxop object",
PointerValue (),
MakePointerAccessor (&AdhocWifiMac::DoGetDcaTxop),
MakePointerChecker<DcaTxop> ())
;
return tid;
}
@@ -243,5 +248,10 @@ AdhocWifiMac::ForwardUp (Ptr<Packet> packet, WifiMacHeader const *hdr)
NS_LOG_DEBUG ("received size="<<packet->GetSize ()<<", from="<<hdr->GetAddr2 ());
m_upCallback (packet, hdr->GetAddr2 (), hdr->GetAddr1 ());
}
Ptr<DcaTxop>
AdhocWifiMac::DoGetDcaTxop(void) const
{
return m_dca;
}
} // namespace ns3

View File

@@ -86,6 +86,7 @@ private:
void ForwardUp (Ptr<Packet> packet, WifiMacHeader const*hdr);
AdhocWifiMac (const AdhocWifiMac & ctor_arg);
AdhocWifiMac &operator = (const AdhocWifiMac &o);
Ptr<DcaTxop> DoGetDcaTxop(void) const;
Ptr<DcaTxop> m_dca;
Callback<void,Ptr<Packet>, Mac48Address, Mac48Address> m_upCallback;

View File

@@ -30,6 +30,7 @@
#include "dcf-manager.h"
#include "mac-rx-middle.h"
#include "mac-low.h"
#include "ns3/pointer.h"
NS_LOG_COMPONENT_DEFINE ("NqapWifiMac");
@@ -56,6 +57,10 @@ NqapWifiMac::GetTypeId (void)
MakeBooleanAccessor (&NqapWifiMac::SetBeaconGeneration,
&NqapWifiMac::GetBeaconGeneration),
MakeBooleanChecker ())
.AddAttribute ("DcaTxop", "The DcaTxop object",
PointerValue (),
MakePointerAccessor (&NqapWifiMac::DoGetDcaTxop),
MakePointerChecker<DcaTxop> ())
;
return tid;
}
@@ -554,5 +559,10 @@ NqapWifiMac::Receive (Ptr<Packet> packet, WifiMacHeader const *hdr)
NS_ASSERT (false);
}
}
Ptr<DcaTxop>
NqapWifiMac::DoGetDcaTxop(void) const
{
return m_dca;
}
} // namespace ns3

View File

@@ -113,6 +113,7 @@ private:
virtual void DoDispose (void);
NqapWifiMac (const NqapWifiMac & ctor_arg);
NqapWifiMac &operator = (const NqapWifiMac &o);
Ptr<DcaTxop> DoGetDcaTxop(void) const;
Ptr<DcaTxop> m_dca;
Ptr<DcaTxop> m_beaconDca;

View File

@@ -33,6 +33,8 @@
#include "mac-low.h"
#include "dcf-manager.h"
#include "mac-rx-middle.h"
#include "ns3/trace-source-accessor.h"
#include "ns3/pointer.h"
NS_LOG_COMPONENT_DEFINE ("NqstaWifiMac");
@@ -83,6 +85,10 @@ NqstaWifiMac::GetTypeId (void)
BooleanValue (false),
MakeBooleanAccessor (&NqstaWifiMac::SetActiveProbing),
MakeBooleanChecker ())
.AddAttribute ("DcaTxop", "The DcaTxop object",
PointerValue (),
MakePointerAccessor (&NqstaWifiMac::DoGetDcaTxop),
MakePointerChecker<DcaTxop> ())
;
return tid;
}
@@ -194,7 +200,11 @@ NqstaWifiMac::GetPifs (void) const
{
return m_low->GetPifs ();
}
Ptr<DcaTxop>
NqstaWifiMac::DoGetDcaTxop(void) const
{
return m_dca;
}
void
NqstaWifiMac::SetWifiPhy (Ptr<WifiPhy> phy)
{

View File

@@ -129,6 +129,7 @@ private:
virtual void DoDispose (void);
NqstaWifiMac (const NqstaWifiMac & ctor_arg);
NqstaWifiMac &operator = (const NqstaWifiMac & ctor_arg);
Ptr<DcaTxop> DoGetDcaTxop(void) const;
enum {
ASSOCIATED,