24 #include "ss-manager.h"
26 #include "service-flow.h"
31 NS_OBJECT_ENSURE_REGISTERED (SSManager);
33 TypeId SSManager::GetTypeId (
void)
35 static TypeId tid = TypeId (
"ns3::SSManager")
36 .SetParent<Object> ();
40 SSManager::SSManager (
void)
42 m_ssRecords =
new std::vector<SSRecord*> ();
45 SSManager::~SSManager (
void)
47 for (std::vector<SSRecord*>::iterator iter = m_ssRecords->begin (); iter != m_ssRecords->end (); ++iter)
56 SSManager::CreateSSRecord (
const Mac48Address &macAddress)
58 SSRecord *ssRecord =
new SSRecord (macAddress);
59 m_ssRecords->push_back (ssRecord);
64 SSManager::GetSSRecord (
const Mac48Address &macAddress)
const
66 for (std::vector<SSRecord*>::iterator iter = m_ssRecords->begin (); iter != m_ssRecords->end (); ++iter)
68 if ((*iter)->GetMacAddress () == macAddress)
79 SSManager::GetSSRecord (
Cid cid)
const
81 for (std::vector<SSRecord*>::iterator iter1 = m_ssRecords->begin (); iter1 != m_ssRecords->end (); ++iter1)
84 if (ssRecord->GetBasicCid () == cid || ssRecord->GetPrimaryCid () == cid)
90 std::vector<ServiceFlow*> sf = ssRecord->GetServiceFlows (ServiceFlow::SF_TYPE_ALL);
91 for (std::vector<ServiceFlow*>::iterator iter2 = sf.begin (); iter2 != sf.end (); ++iter2)
93 if ((*iter2)->GetConnection ()->GetCid () == cid)
105 std::vector<SSRecord*>*
106 SSManager::GetSSRecords (
void)
const
112 SSManager::IsInRecord (
const Mac48Address &macAddress)
const
114 for (std::vector<SSRecord*>::iterator iter = m_ssRecords->begin (); iter != m_ssRecords->end (); ++iter)
116 if ((*iter)->GetMacAddress () == macAddress)
125 SSManager::IsRegistered (
const Mac48Address &macAddress)
const
127 SSRecord *ssRecord = GetSSRecord (macAddress);
128 return ssRecord != 0 && ssRecord->GetRangingStatus () == WimaxNetDevice::RANGING_STATUS_SUCCESS;
132 SSManager::DeleteSSRecord (Cid cid)
134 for (std::vector<SSRecord*>::iterator iter1 = m_ssRecords->begin (); iter1 != m_ssRecords->end (); ++iter1)
136 SSRecord *ssRecord = *iter1;
137 if (ssRecord->GetBasicCid () == cid || ssRecord->GetPrimaryCid () == cid)
139 m_ssRecords->erase (iter1);
144 std::vector<ServiceFlow*> sf = ssRecord->GetServiceFlows (ServiceFlow::SF_TYPE_ALL);
145 for (std::vector<ServiceFlow*>::const_iterator iter2 = sf.begin (); iter2 != sf.end (); ++iter2)
147 if ((*iter2)->GetConnection ()->GetCid () == cid)
149 m_ssRecords->erase (iter1);
158 SSManager::GetMacAddress (Cid cid)
const
160 return GetSSRecord (cid)->GetMacAddress ();
164 SSManager::GetNSSs (
void)
const
166 return m_ssRecords->size ();
170 SSManager::GetNRegisteredSSs (
void)
const
173 for (std::vector<SSRecord*>::iterator iter = m_ssRecords->begin (); iter != m_ssRecords->end (); ++iter)
175 if ((*iter)->GetRangingStatus () == WimaxNetDevice::RANGING_STATUS_SUCCESS)
#define NS_LOG_COMPONENT_DEFINE(name)
#define NS_LOG_DEBUG(msg)
This class is used by the base station to store some information related to subscriber station in the...