[Orxonox-commit 6263] r10920 - in code/branches/cpp11_v2: src/libraries/core src/libraries/core/class src/libraries/core/object src/libraries/network/packet src/modules/gametypes src/modules/jump src/modules/mini4dgame src/modules/overlays/debugging src/orxonox src/orxonox/gamestates src/orxonox/gametypes test/core/object
landauf at orxonox.net
landauf at orxonox.net
Sun Dec 6 14:51:15 CET 2015
Author: landauf
Date: 2015-12-06 14:51:14 +0100 (Sun, 06 Dec 2015)
New Revision: 10920
Modified:
code/branches/cpp11_v2/src/libraries/core/ClassTreeMask.cc
code/branches/cpp11_v2/src/libraries/core/Loader.cc
code/branches/cpp11_v2/src/libraries/core/class/Identifier.h
code/branches/cpp11_v2/src/libraries/core/object/ObjectList.h
code/branches/cpp11_v2/src/libraries/core/object/ObjectListIterator.h
code/branches/cpp11_v2/src/libraries/network/packet/Gamestate.cc
code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceController.cc
code/branches/cpp11_v2/src/modules/jump/Jump.cc
code/branches/cpp11_v2/src/modules/mini4dgame/Mini4Dgame.cc
code/branches/cpp11_v2/src/modules/overlays/debugging/DebugPositionText.cc
code/branches/cpp11_v2/src/orxonox/Radar.cc
code/branches/cpp11_v2/src/orxonox/gamestates/GSLevel.cc
code/branches/cpp11_v2/src/orxonox/gamestates/GSRoot.cc
code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.cc
code/branches/cpp11_v2/test/core/object/IteratorTest.cc
code/branches/cpp11_v2/test/core/object/ListableTest.cc
code/branches/cpp11_v2/test/core/object/ObjectListIteratorTest.cc
code/branches/cpp11_v2/test/core/object/ObjectListTest.cc
Log:
no static functions anymore in ObjectList. you need to instantiate an ObjectList to use it.
this allows for prettier for-loop syntax when iterating over an ObjectList of a specific context: for (T* object : ObjectList<T>(context)) { ... }
Modified: code/branches/cpp11_v2/src/libraries/core/ClassTreeMask.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/ClassTreeMask.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/libraries/core/ClassTreeMask.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -850,7 +850,7 @@
if (this->subclassIterator_ != this->subclasses_.end())
this->objectIterator_ = Context::getRootContext()->getObjectList(this->subclassIterator_->first)->begin();
else
- this->objectIterator_ = ObjectList<BaseObject>::end();
+ this->objectIterator_ = ObjectList<BaseObject>().end();
// Check if the iterator points on a valid object. If not, go to the next object by calling ++
if (!this->objectIterator_ || (this->subclassIterator_->second && !this->objectIterator_->isExactlyA(this->subclassIterator_->first)))
Modified: code/branches/cpp11_v2/src/libraries/core/Loader.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/Loader.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/libraries/core/Loader.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -206,7 +206,7 @@
{
if (!file)
return;
- for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it; )
+ for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>().begin(); it; )
{
if ((it->getFile() == file) && mask.isIncluded(it->getIdentifier()))
(it++)->destroy();
Modified: code/branches/cpp11_v2/src/libraries/core/class/Identifier.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/class/Identifier.h 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/libraries/core/class/Identifier.h 2015-12-06 13:51:14 UTC (rev 10920)
@@ -414,10 +414,8 @@
template <class T>
void ClassIdentifier<T>::destroyObjects(Listable*)
{
- ObjectListBase* objectList = Context::getRootContext()->getObjectList(this);
- ObjectListElement<T>* begin = static_cast<ObjectListElement<T>*>(objectList->begin());
- ObjectListElement<T>* end = static_cast<ObjectListElement<T>*>(objectList->end());
- for (typename ObjectList<T>::iterator it = begin; it != end; )
+ ObjectList<T> list(Context::getRootContext()->getObjectList(this));
+ for (typename ObjectList<T>::iterator it = list.begin(); it != list.end(); )
this->destroyObject(*(it++));
}
Modified: code/branches/cpp11_v2/src/libraries/core/object/ObjectList.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/object/ObjectList.h 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/libraries/core/object/ObjectList.h 2015-12-06 13:51:14 UTC (rev 10920)
@@ -70,54 +70,30 @@
public:
typedef ObjectListIterator<T> iterator;
- /// Returns the size of the list (for the root context)
- inline static size_t size()
- { return size(Context::getRootContext()); }
+ ObjectList() : ObjectList(Context::getRootContext()) {}
+ ObjectList(Context* context) : ObjectList(context->getObjectList<T>()) {}
+ ObjectList(ObjectListBase* list) : list_(list) {}
+
/// Returns the size of the list
- inline static size_t size(Context* context)
- {
- return context->getObjectList<T>()->size();
- }
+ inline size_t size()
+ { return this->list_->size(); }
- /// Returns an Iterator to the first element in the list (for the root context).
- inline static ObjectListIterator<T> begin()
- { return begin(Context::getRootContext()); }
/// Returns an Iterator to the first element in the list.
- inline static ObjectListIterator<T> begin(Context* context)
- {
- ObjectListBase* list = context->getObjectList<T>();
- return static_cast<ObjectListElement<T>*>(list->begin());
- }
-
- /// Returns an Iterator to the element after the last element in the list (for the root context).
- inline static ObjectListIterator<T> end()
- { return end(Context::getRootContext()); }
+ inline ObjectListIterator<T> begin()
+ { return static_cast<ObjectListElement<T>*>(this->list_->begin()); }
/// Returns an Iterator to the element after the last element in the list.
- inline static ObjectListIterator<T> end(Context* context)
- {
- ObjectListBase* list = context->getObjectList<T>();
- return static_cast<ObjectListElement<T>*>(list->end());
- }
+ inline ObjectListIterator<T> end()
+ { return static_cast<ObjectListElement<T>*>(this->list_->end()); }
- /// Returns an Iterator to the last element in the list (for the root context).
- inline static ObjectListIterator<T> rbegin()
- { return rbegin(Context::getRootContext()); }
/// Returns an Iterator to the last element in the list.
- inline static ObjectListIterator<T> rbegin(Context* context)
- {
- ObjectListBase* list = context->getObjectList<T>();
- return static_cast<ObjectListElement<T>*>(list->rbegin());
- }
-
- /// Returns an Iterator to the element before the first element in the list (for the root context).
- inline static ObjectListIterator<T> rend()
- { return rend(Context::getRootContext()); }
+ inline ObjectListIterator<T> rbegin()
+ { return static_cast<ObjectListElement<T>*>(this->list_->rbegin()); }
/// Returns an Iterator to the element before the first element in the list.
- inline static ObjectListIterator<T> rend(Context* context)
- {
- ObjectListBase* list = context->getObjectList<T>();
- return static_cast<ObjectListElement<T>*>(list->rend());
- }
+ inline ObjectListIterator<T> rend()
+ { return static_cast<ObjectListElement<T>*>(this->list_->rend()); }
+
+ private:
+ ObjectListBase* list_;
};
}
Modified: code/branches/cpp11_v2/src/libraries/core/object/ObjectListIterator.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/object/ObjectListIterator.h 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/libraries/core/object/ObjectListIterator.h 2015-12-06 13:51:14 UTC (rev 10920)
@@ -40,7 +40,8 @@
Usage:
@code
- for (ObjectListIterator<myClass> it = ObjectList<myClass>::begin(); it != ObjectList<myClass>::end(); ++it)
+ ObjectList<myClass> list;
+ for (ObjectListIterator<myClass> it = list.begin(); it != list.end(); ++it)
{
it->someFunction(...);
myClass* myObject = *it;
Modified: code/branches/cpp11_v2/src/libraries/network/packet/Gamestate.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/packet/Gamestate.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/libraries/network/packet/Gamestate.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -125,7 +125,7 @@
uint8_t *mem = data_; // in this stream store all data of the variables and the headers of the synchronisable
mem += GamestateHeader::getSize();
ObjectList<Synchronisable>::iterator it;
- for(it = ObjectList<Synchronisable>::begin(); it; ++it)
+ for(it = ObjectList<Synchronisable>().begin(); it; ++it)
{
// tempsize=it->getSize(id, mode);
Modified: code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceController.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceController.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/modules/gametypes/SpaceRaceController.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -58,8 +58,8 @@
std::vector<RaceCheckPoint*> checkpoints;
virtualCheckPointIndex = -2;
- if (ObjectList<SpaceRaceManager>::size() != 1)
- orxout(internal_warning) << "Expected 1 instance of SpaceRaceManager but found " << ObjectList<SpaceRaceManager>::size() << endl;
+ if (ObjectList<SpaceRaceManager>().size() != 1)
+ orxout(internal_warning) << "Expected 1 instance of SpaceRaceManager but found " << ObjectList<SpaceRaceManager>().size() << endl;
for (SpaceRaceManager* manager : ObjectList<SpaceRaceManager>())
{
checkpoints = manager->getAllCheckpoints();
@@ -298,7 +298,8 @@
{
orxout()<<"add VCP at"<<virtualCheckPointPosition.x<<", "<<virtualCheckPointPosition.y<<", "<<virtualCheckPointPosition.z<<endl;
RaceCheckPoint* newTempRaceCheckPoint;
- for (ObjectList<SpaceRaceManager>::iterator it = ObjectList<SpaceRaceManager>::begin(); it!= ObjectList<SpaceRaceManager>::end(); ++it)
+ ObjectList<SpaceRaceManager> list;
+ for (ObjectList<SpaceRaceManager>::iterator it = list.begin(); it!= list.end(); ++it)
{
newTempRaceCheckPoint = new RaceCheckPoint((*it));
}
@@ -487,7 +488,8 @@
Vector3 point2 = racepoint2->getPosition();
std::vector<StaticEntity*> problematicObjects;
- for (ObjectList<StaticEntity>::iterator it = ObjectList<StaticEntity>::begin(); it!= ObjectList<StaticEntity>::end(); ++it)
+ ObjectList<StaticEntity> list;
+ for (ObjectList<StaticEntity>::iterator it = list.begin(); it!= list.end(); ++it)
{
if (dynamic_cast<RaceCheckPoint*>(*it) != nullptr)
Modified: code/branches/cpp11_v2/src/modules/jump/Jump.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/jump/Jump.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/modules/jump/Jump.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -140,12 +140,11 @@
}
}
- ObjectList<JumpPlatform>::iterator beginPlatform = ObjectList<JumpPlatform>::begin();
- ObjectList<JumpPlatform>::iterator endPlatform = ObjectList<JumpPlatform>::end();
- ObjectList<JumpPlatform>::iterator itPlatform = beginPlatform;
+ ObjectList<JumpPlatform> listPlatform;
+ ObjectList<JumpPlatform>::iterator itPlatform = listPlatform.begin();
Vector3 platformPosition;
- while (itPlatform != endPlatform)
+ while (itPlatform != listPlatform.end())
{
platformPosition = itPlatform->getPosition();
if (platformPosition.z < totalScreenShift_ - center_->getFieldDimension().y)
@@ -162,11 +161,10 @@
}
// Deleted deactivated platforms
- ObjectList<JumpPlatformDisappear>::iterator beginDisappear = ObjectList<JumpPlatformDisappear>::begin();
- ObjectList<JumpPlatformDisappear>::iterator endDisappear = ObjectList<JumpPlatformDisappear>::end();
- ObjectList<JumpPlatformDisappear>::iterator itDisappear = beginDisappear;
+ ObjectList<JumpPlatformDisappear> listDisappear;
+ ObjectList<JumpPlatformDisappear>::iterator itDisappear = listDisappear.begin();
- while (itDisappear != endDisappear)
+ while (itDisappear != listDisappear.end())
{
if (!itDisappear->isActive())
{
@@ -181,11 +179,10 @@
}
}
- ObjectList<JumpPlatformTimer>::iterator beginTimer = ObjectList<JumpPlatformTimer>::begin();
- ObjectList<JumpPlatformTimer>::iterator endTimer = ObjectList<JumpPlatformTimer>::end();
- ObjectList<JumpPlatformTimer>::iterator itTimer = beginTimer;
+ ObjectList<JumpPlatformTimer> listTimer;
+ ObjectList<JumpPlatformTimer>::iterator itTimer = listTimer.begin();
- while (itTimer != endTimer)
+ while (itTimer != listTimer.end())
{
if (!itTimer->isActive())
{
@@ -200,12 +197,11 @@
}
}
- ObjectList<JumpProjectile>::iterator beginProjectile = ObjectList<JumpProjectile>::begin();
- ObjectList<JumpProjectile>::iterator endProjectile = ObjectList<JumpProjectile>::end();
- ObjectList<JumpProjectile>::iterator itProjectile = beginProjectile;
+ ObjectList<JumpProjectile> listProjectile;
+ ObjectList<JumpProjectile>::iterator itProjectile = listProjectile.begin();
Vector3 projectilePosition;
- while (itProjectile != endProjectile)
+ while (itProjectile != listProjectile.end())
{
projectilePosition = itProjectile->getPosition();
if (projectilePosition.z > totalScreenShift_ + 5*center_->getFieldDimension().y)
@@ -221,12 +217,11 @@
}
}
- ObjectList<JumpEnemy>::iterator beginEnemy = ObjectList<JumpEnemy>::begin();
- ObjectList<JumpEnemy>::iterator endEnemy = ObjectList<JumpEnemy>::end();
- ObjectList<JumpEnemy>::iterator itEnemy = beginEnemy;
+ ObjectList<JumpEnemy> listEnemy;
+ ObjectList<JumpEnemy>::iterator itEnemy = listEnemy.begin();
Vector3 enemyPosition;
- while (itEnemy != endEnemy)
+ while (itEnemy != listEnemy.end())
{
enemyPosition = itEnemy->getPosition();
if (enemyPosition.z < totalScreenShift_ - center_->getFieldDimension().y || itEnemy->dead_ == true)
@@ -242,12 +237,11 @@
}
}
- ObjectList<JumpItem>::iterator beginItem = ObjectList<JumpItem>::begin();
- ObjectList<JumpItem>::iterator endItem = ObjectList<JumpItem>::end();
- ObjectList<JumpItem>::iterator itItem = beginItem;
+ ObjectList<JumpItem> listItem;
+ ObjectList<JumpItem>::iterator itItem = listItem.begin();
Vector3 itemPosition;
- while (itItem != endItem)
+ while (itItem != listItem.end())
{
itemPosition = itItem->getPosition();
Modified: code/branches/cpp11_v2/src/modules/mini4dgame/Mini4Dgame.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/mini4dgame/Mini4Dgame.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/modules/mini4dgame/Mini4Dgame.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -182,7 +182,7 @@
void Mini4Dgame::undoStone()//Vector4 move, const int playerColor)
{
- ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>::begin();
+ ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>().begin();
it->undoMove();
}
@@ -190,7 +190,7 @@
void Mini4Dgame::setStone(int x,int y,int z,int w)//Vector4 move, const int playerColor)
{
Mini4DgamePosition move = Mini4DgamePosition(x,y,z,w);
- ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>::begin();
+ ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>().begin();
it->makeMove(move);
}
Modified: code/branches/cpp11_v2/src/modules/overlays/debugging/DebugPositionText.cc
===================================================================
--- code/branches/cpp11_v2/src/modules/overlays/debugging/DebugPositionText.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/modules/overlays/debugging/DebugPositionText.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -51,7 +51,7 @@
{
SUPER(DebugPositionText, tick, dt);
- ObjectList<NewHumanController>::iterator it = ObjectList<NewHumanController>::begin();
+ ObjectList<NewHumanController>::iterator it = ObjectList<NewHumanController>().begin();
if (it && it->getControllableEntity() )
{
Vector3 pos = it->getControllableEntity()->getPosition();
Modified: code/branches/cpp11_v2/src/orxonox/Radar.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/Radar.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/orxonox/Radar.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -137,7 +137,8 @@
void Radar::cycleFocus()
{
- if (ObjectList<RadarViewable>::begin() == ObjectList<RadarViewable>::end())
+ ObjectList<RadarViewable> listRadarViewable;
+ if (listRadarViewable.size() == 0)
{
// list is empty
this->itFocus_ = nullptr;
@@ -157,7 +158,7 @@
float minimumDistance = FLT_MAX;
ObjectList<RadarViewable>::iterator itFallback = nullptr;
- for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it)
+ for (ObjectList<RadarViewable>::iterator it = listRadarViewable.begin(); it; ++it)
{
if (*it == static_cast<RadarViewable*>(HumanController::getLocalControllerEntityAsPawn()))
continue;
Modified: code/branches/cpp11_v2/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gamestates/GSLevel.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/orxonox/gamestates/GSLevel.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -214,14 +214,17 @@
*/
void GSLevel::unloadLevelAsClient()
{
- for (ObjectList<Level>::iterator it = ObjectList<Level>::begin(); it != ObjectList<Level>::end(); )
+ ObjectList<Level> listLevel;
+ for (ObjectList<Level>::iterator it = listLevel.begin(); it != listLevel.end(); )
{
StrongPtr<Level> level = *(it++); // StrongPtr prevents that the Level gets destroyed while we loop over it
- for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(level); it != ObjectList<BaseObject>::end(level); )
+ ObjectList<BaseObject> listBaseObject(level);
+ for (ObjectList<BaseObject>::iterator it = listBaseObject.begin(); it != listBaseObject.end(); )
(it++)->destroy();
}
- for (ObjectList<Synchronisable>::iterator it = ObjectList<Synchronisable>::begin(); it != ObjectList<Synchronisable>::end(); )
+ ObjectList<Synchronisable> listSynchronisable;
+ for (ObjectList<Synchronisable>::iterator it = listSynchronisable.begin(); it != listSynchronisable.end(); )
{
if (it->getSyncMode() != 0x0)
(it++)->destroy();
Modified: code/branches/cpp11_v2/src/orxonox/gamestates/GSRoot.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gamestates/GSRoot.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/orxonox/gamestates/GSRoot.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -112,7 +112,8 @@
startMainMenu_s = false;
}
- for (ObjectList<Timer>::iterator it = ObjectList<Timer>::begin(); it; )
+ ObjectList<Timer> listTimer;
+ for (ObjectList<Timer>::iterator it = listTimer.begin(); it; )
{
Timer* object = *it;
++it;
@@ -128,7 +129,8 @@
leveldt = 0.0f;
}
float realdt = leveldt * TimeFactorListener::getTimeFactor();
- for (ObjectList<Tickable>::iterator it = ObjectList<Tickable>::begin(); it; )
+ ObjectList<Tickable> listTickable;
+ for (ObjectList<Tickable>::iterator it = listTickable.begin(); it; )
{
Tickable* object = *it;
++it;
Modified: code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.cc
===================================================================
--- code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/src/orxonox/gametypes/Gametype.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -491,7 +491,8 @@
void Gametype::killBots(unsigned int amount)
{
unsigned int i = 0;
- for (ObjectList<Bot>::iterator it = ObjectList<Bot>::begin(); (it != ObjectList<Bot>::end()) && ((amount == 0) || (i < amount)); )
+ ObjectList<Bot> list;
+ for (ObjectList<Bot>::iterator it = list.begin(); (it != list.end()) && ((amount == 0) || (i < amount)); )
{
if (it->getGametype() == this)
{
Modified: code/branches/cpp11_v2/test/core/object/IteratorTest.cc
===================================================================
--- code/branches/cpp11_v2/test/core/object/IteratorTest.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/test/core/object/IteratorTest.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -54,13 +54,15 @@
TEST_F(IteratorTest, CanAssignIterator)
{
- Iterator<TestInterface> it = ObjectList<TestInterface>::begin();
+ ObjectList<TestInterface> list;
+ Iterator<TestInterface> it = list.begin();
}
TEST_F(IteratorTest, CanIterateOverEmptyList)
{
size_t i = 0;
- for (Iterator<TestInterface> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
+ ObjectList<TestInterface> list;
+ for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
++i;
EXPECT_EQ(0u, i);
}
@@ -76,7 +78,8 @@
EXPECT_CALL(test3, test());
// iterate over interfaces but use a TestClass iterator - now we can call TestClass::test()
- for (Iterator<TestClass> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
+ ObjectList<TestInterface> list;
+ for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
it->test();
}
@@ -86,7 +89,8 @@
TestInterface testInterface;
size_t i = 0;
- for (Iterator<TestInterface> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
+ ObjectList<TestInterface> list;
+ for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
{
++i;
if (i == 1u) EXPECT_EQ(&testClass, *it);
@@ -101,7 +105,8 @@
TestInterface testInterface;
size_t i = 0;
- for (Iterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
+ ObjectList<TestClass> list;
+ for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
{
++i;
if (i == 1u) EXPECT_EQ(&testClass, *it);
@@ -115,7 +120,8 @@
TestInterface testInterface;
size_t i = 0;
- for (Iterator<TestClass> it = ObjectList<TestInterface>::begin(); it != ObjectList<TestInterface>::end(); ++it)
+ ObjectList<TestInterface> list;
+ for (Iterator<TestClass> it = list.begin(); it != list.end(); ++it)
{
++i;
if (i == 1u) EXPECT_EQ(&testClass, *it);
@@ -130,7 +136,8 @@
TestInterface testInterface;
size_t i = 0;
- for (Iterator<TestInterface> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
+ ObjectList<TestClass> list;
+ for (Iterator<TestInterface> it = list.begin(); it != list.end(); ++it)
{
++i;
if (i == 1u) EXPECT_EQ(&testClass, *it);
Modified: code/branches/cpp11_v2/test/core/object/ListableTest.cc
===================================================================
--- code/branches/cpp11_v2/test/core/object/ListableTest.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/test/core/object/ListableTest.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -62,43 +62,43 @@
TEST_F(ListableTest, AddsToObjectList)
{
ListableClassTest test;
- EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
+ EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
}
TEST_F(ListableTest, AddsToAllObjectLists)
{
ListableSubclassTest test;
- EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
+ EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
- EXPECT_EQ(1u, ObjectList<ListableSubclassTest>::size());
+ EXPECT_EQ(1u, ObjectList<ListableSubclassTest>().size());
EXPECT_TRUE(objectListContains<ListableSubclassTest>(&test));
}
TEST_F(ListableTest, RemovesFromObjectList)
{
- EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
+ EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
{
ListableClassTest test;
- EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
+ EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
}
- EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
+ EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
}
TEST_F(ListableTest, RemovesFromAllObjectLists)
{
- EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
- EXPECT_EQ(0u, ObjectList<ListableSubclassTest>::size());
+ EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
+ EXPECT_EQ(0u, ObjectList<ListableSubclassTest>().size());
{
ListableSubclassTest test;
- EXPECT_EQ(1u, ObjectList<ListableClassTest>::size());
+ EXPECT_EQ(1u, ObjectList<ListableClassTest>().size());
EXPECT_TRUE(objectListContains<ListableClassTest>(&test));
- EXPECT_EQ(1u, ObjectList<ListableSubclassTest>::size());
+ EXPECT_EQ(1u, ObjectList<ListableSubclassTest>().size());
EXPECT_TRUE(objectListContains<ListableSubclassTest>(&test));
}
- EXPECT_EQ(0u, ObjectList<ListableClassTest>::size());
- EXPECT_EQ(0u, ObjectList<ListableSubclassTest>::size());
+ EXPECT_EQ(0u, ObjectList<ListableClassTest>().size());
+ EXPECT_EQ(0u, ObjectList<ListableSubclassTest>().size());
}
TEST_F(ListableTest, CanAddObjectToContext)
Modified: code/branches/cpp11_v2/test/core/object/ObjectListIteratorTest.cc
===================================================================
--- code/branches/cpp11_v2/test/core/object/ObjectListIteratorTest.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/test/core/object/ObjectListIteratorTest.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -54,13 +54,15 @@
TEST_F(ObjectListIteratorTest, CanAssignIterator)
{
- ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin();
+ ObjectList<TestClass> list;
+ ObjectListIterator<TestClass> it = list.begin();
}
TEST_F(ObjectListIteratorTest, CanIterateOverEmptyList)
{
size_t i = 0;
- for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
+ ObjectList<TestClass> list;
+ for (ObjectListIterator<TestClass> it = list.begin(); it != list.end(); ++it)
++i;
EXPECT_EQ(0u, i);
}
@@ -73,7 +75,8 @@
TestInterface interface;
size_t i = 0;
- for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
+ ObjectList<TestClass> list;
+ for (ObjectListIterator<TestClass> it = list.begin(); it != list.end(); ++it)
{
++i;
if (i == 1u) EXPECT_EQ(&test1, *it);
@@ -91,7 +94,8 @@
TestInterface interface;
size_t i = 0;
- for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::rbegin(); it != ObjectList<TestClass>::rend(); --it)
+ ObjectList<TestClass> list;
+ for (ObjectListIterator<TestClass> it = list.rbegin(); it != list.rend(); --it)
{
++i;
if (i == 1u) EXPECT_EQ(&test3, *it);
@@ -112,7 +116,8 @@
EXPECT_CALL(test2, test());
EXPECT_CALL(test3, test());
- for (ObjectListIterator<TestClass> it = ObjectList<TestClass>::begin(); it != ObjectList<TestClass>::end(); ++it)
+ ObjectList<TestClass> list;
+ for (ObjectListIterator<TestClass> it = list.begin(); it != list.end(); ++it)
it->test();
}
}
Modified: code/branches/cpp11_v2/test/core/object/ObjectListTest.cc
===================================================================
--- code/branches/cpp11_v2/test/core/object/ObjectListTest.cc 2015-12-05 21:47:51 UTC (rev 10919)
+++ code/branches/cpp11_v2/test/core/object/ObjectListTest.cc 2015-12-06 13:51:14 UTC (rev 10920)
@@ -14,6 +14,7 @@
{
public:
ListableTest() { RegisterObject(ListableTest); }
+ ListableTest(Context* context) : Listable(context) { RegisterObject(ListableTest); }
MOCK_METHOD0(test, void());
};
@@ -102,4 +103,48 @@
for (ListableTest* object : ObjectList<ListableTest>())
object->test();
}
+
+ TEST_F(ObjectListTest, UsesCorrectContext)
+ {
+ Context context1(Context::getRootContext());
+ Context context2(Context::getRootContext());
+
+ ListableTest test1(&context1);
+ ListableTest test2(&context1);
+ ListableTest test3(&context2);
+
+ EXPECT_EQ(3, ObjectList<ListableTest>().size());
+ EXPECT_EQ(2, ObjectList<ListableTest>(&context1).size());
+ EXPECT_EQ(1, ObjectList<ListableTest>(&context2).size());
+ }
+
+ TEST_F(ObjectListTest, CanIterateOverCorrectContext)
+ {
+ Context context1(Context::getRootContext());
+ Context context2(Context::getRootContext());
+
+ ListableTest test1(&context1);
+ ListableTest test2(&context1);
+ ListableTest test3(&context2);
+
+ {
+ size_t i = 0;
+ for (ListableTest* object : ObjectList<ListableTest>(&context1))
+ {
+ ++i;
+ if (i == 1u) EXPECT_EQ(&test1, object);
+ if (i == 2u) EXPECT_EQ(&test2, object);
+ }
+ EXPECT_EQ(2u, i);
+ }
+ {
+ size_t i = 0;
+ for (ListableTest* object : ObjectList<ListableTest>(&context2))
+ {
+ ++i;
+ if (i == 1u) EXPECT_EQ(&test3, object);
+ }
+ EXPECT_EQ(1u, i);
+ }
+ }
}
More information about the Orxonox-commit
mailing list