--- a/src/core/object.cc Wed Apr 09 17:28:19 2008 -0700
+++ b/src/core/object.cc Wed Apr 09 17:35:18 2008 -0700
@@ -37,6 +37,43 @@
NS_OBJECT_ENSURE_REGISTERED (Object);
+Object::AggregateIterator::AggregateIterator ()
+ : m_first (0),
+ m_current (0)
+{}
+
+bool
+Object::AggregateIterator::HasNext (void) const
+{
+ if (m_current == 0 && m_first != 0)
+ {
+ return true;
+ }
+ if (m_current != 0 && m_current->m_next != PeekPointer (m_first))
+ {
+ return true;
+ }
+ return false;
+}
+Ptr<const Object>
+Object::AggregateIterator::Next (void)
+{
+ if (m_current == 0)
+ {
+ m_current = m_first;
+ }
+ else
+ {
+ m_current = m_current->m_next;
+ }
+ return m_current;
+}
+Object::AggregateIterator::AggregateIterator (Ptr<const Object> first)
+ : m_first (first),
+ m_current (0)
+{}
+
+
TypeId
Object::GetInstanceTypeId (void) const
{
@@ -122,6 +159,12 @@
NS_ASSERT (o->CheckLoose ());
}
+Object::AggregateIterator
+Object::GetAggregateIterator (void) const
+{
+ return AggregateIterator (this);
+}
+
void
Object::SetTypeId (TypeId tid)
{