319 |
319 |
320 void |
320 void |
321 VendorSpecificContentManager::RegisterVscCallback (OrganizationIdentifier oi, VscCallback cb) |
321 VendorSpecificContentManager::RegisterVscCallback (OrganizationIdentifier oi, VscCallback cb) |
322 { |
322 { |
323 NS_LOG_FUNCTION (this << oi << &cb); |
323 NS_LOG_FUNCTION (this << oi << &cb); |
|
324 if (IsVscCallbackRegistered (oi)) |
|
325 { |
|
326 NS_LOG_WARN ("there is already a VsaCallback registered for OrganizationIdentifier " << oi); |
|
327 } |
324 m_callbacks.insert (std::make_pair (oi, cb)); |
328 m_callbacks.insert (std::make_pair (oi, cb)); |
325 OrganizationIdentifiers.push_back (oi); |
|
326 } |
329 } |
327 |
330 |
328 void |
331 void |
329 VendorSpecificContentManager::DeregisterVscCallback (OrganizationIdentifier &oi) |
332 VendorSpecificContentManager::DeregisterVscCallback (OrganizationIdentifier &oi) |
330 { |
333 { |
331 NS_LOG_FUNCTION (this << oi); |
334 NS_LOG_FUNCTION (this << oi); |
332 m_callbacks.erase (oi); |
335 m_callbacks.erase (oi); |
|
336 } |
|
337 |
|
338 bool |
|
339 VendorSpecificContentManager::IsVscCallbackRegistered (OrganizationIdentifier &oi) |
|
340 { |
|
341 NS_LOG_FUNCTION (this << oi); |
|
342 if (m_callbacks.find (oi) == m_callbacks.end ()) |
|
343 { |
|
344 OrganizationIdentifiers.push_back (oi); |
|
345 return false; |
|
346 } |
|
347 return true; |
333 } |
348 } |
334 |
349 |
335 static VscCallback null_callback = MakeNullCallback<bool, Ptr<WifiMac>, const OrganizationIdentifier &,Ptr<const Packet>,const Address &> (); |
350 static VscCallback null_callback = MakeNullCallback<bool, Ptr<WifiMac>, const OrganizationIdentifier &,Ptr<const Packet>,const Address &> (); |
336 |
351 |
337 VscCallback |
352 VscCallback |