#include "object-vector.h" namespace ns3 { ObjectVector::ObjectVector () {} ObjectVector::Iterator ObjectVector::Begin (void) const { return m_objects.begin (); } ObjectVector::Iterator ObjectVector::End (void) const { return m_objects.end (); } uint32_t ObjectVector::GetN (void) const { return m_objects.size (); } Ptr ObjectVector::Get (uint32_t i) const { return m_objects[i]; } ObjectVector::ObjectVector (Attribute value) { const ObjectVectorValue *v = value.DynCast (); if (v == 0) { NS_FATAL_ERROR ("Expected value of type ObjectVectorValue."); } *this = v->Get (); } ObjectVector::operator Attribute () const { return Attribute::Create (); } ObjectVectorValue::ObjectVectorValue () : m_vector () {} ObjectVectorValue::ObjectVectorValue (const ObjectVector &vector) : m_vector (vector) {} ObjectVector ObjectVectorValue::Get (void) const { return m_vector; } Attribute ObjectVectorValue::Copy (void) const { return Attribute::Create (*this); } std::string ObjectVectorValue::SerializeToString (Ptr checker) const { // XXX return ""; } bool ObjectVectorValue::DeserializeFromString (std::string value, Ptr checker) { // XXX ?? Can we implement this correctly ?? I doubt it very much. return true; } bool ObjectVectorAccessor::Set (ObjectBase * object, Attribute value) const { // not allowed. return false; } bool ObjectVectorAccessor::Get (const ObjectBase * object, Attribute value) const { ObjectVectorValue *v = value.DynCast (); if (v == 0) { return false; } v->m_vector.m_objects.clear (); uint32_t n; bool ok = DoGetN (object, &n); if (!ok) { return false; } for (uint32_t i = 0; i < n; i++) { Ptr o = DoGet (object, i); v->m_vector.m_objects.push_back (o); } return true; } Ptr MakeObjectVectorChecker (void) { return MakeSimpleAttributeChecker (); } } // name