From 9f09a8aa49dd2e6595968aa73ecaaaa7dc45910b Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Thu, 17 Dec 2009 03:16:08 +0100 Subject: [PATCH] push creation of the root MObject to users of PlacementIndex --- src/proc/mobject/session/placement-index.cpp | 8 --- src/proc/mobject/session/placement-index.hpp | 1 - src/proc/mobject/session/session-impl.cpp | 1 + src/proc/mobject/session/session-services.cpp | 9 +++- .../mobject/session/placement-index-test.cpp | 3 +- .../proc/mobject/session/testroot.hpp | 51 +++++++++++++++++++ 6 files changed, 62 insertions(+), 11 deletions(-) create mode 100644 tests/components/proc/mobject/session/testroot.hpp diff --git a/src/proc/mobject/session/placement-index.cpp b/src/proc/mobject/session/placement-index.cpp index 2894f6d4c..46b11fb5e 100644 --- a/src/proc/mobject/session/placement-index.cpp +++ b/src/proc/mobject/session/placement-index.cpp @@ -68,7 +68,6 @@ namespace session { using std::tr1::unordered_map; using std::tr1::unordered_multimap; using lib::TypedAllocationManager; -//using util::getValue_or_default; //using util::contains; //using std::string; //using std::map; @@ -315,13 +314,6 @@ namespace session { ENSURE (isValid()); } - PlacementIndex::PlacementIndex() - : pTab_(new Table) - { - pTab_->setupRoot(rootDef); //////////////////////////////////////////TODO what to put in here (it's a test dummy) - ENSURE (isValid()); - } - PlacementIndex::~PlacementIndex() { } diff --git a/src/proc/mobject/session/placement-index.hpp b/src/proc/mobject/session/placement-index.hpp index ef624c572..8397eed21 100644 --- a/src/proc/mobject/session/placement-index.hpp +++ b/src/proc/mobject/session/placement-index.hpp @@ -144,7 +144,6 @@ namespace session { PlacementIndex(PlacementMO const&); - PlacementIndex() ; ~PlacementIndex() ; void clear(); diff --git a/src/proc/mobject/session/session-impl.cpp b/src/proc/mobject/session/session-impl.cpp index a8cde3c10..07298f9ca 100644 --- a/src/proc/mobject/session/session-impl.cpp +++ b/src/proc/mobject/session/session-impl.cpp @@ -22,6 +22,7 @@ #include "proc/mobject/session/session-impl.hpp" +#include "proc/mobject/session/mobjectfactory.hpp" #include "proc/mobject/placement.hpp" #include "proc/mobject/mobject.hpp" #include "lib/error.hpp" diff --git a/src/proc/mobject/session/session-services.cpp b/src/proc/mobject/session/session-services.cpp index a8c2d55e4..c5ad42a32 100644 --- a/src/proc/mobject/session/session-services.cpp +++ b/src/proc/mobject/session/session-services.cpp @@ -30,6 +30,11 @@ #include "proc/mobject/session/session-impl.hpp" #include "proc/mobject/session/sess-manager-impl.hpp" +#include "proc/mobject/session/mobjectfactory.hpp" +#include "lib/symbol.hpp" + +using lib::Symbol; + namespace mobject { namespace session { @@ -87,7 +92,9 @@ namespace session { PPIdx SessionServiceMockIndex:: install () { - PPIdx mockIndex (new PlacementIndex(), &remove_testIndex); // manage instance lifecycle + Symbol typeID ("dummyRoot"); + PMO dummyRoot (MObject::create (typeID)); + PPIdx mockIndex (new PlacementIndex(dummyRoot), &remove_testIndex); // manage instance lifecycle ENSURE (mockIndex); ENSURE (mockIndex->isValid()); ENSURE (1 == mockIndex.use_count()); diff --git a/tests/components/proc/mobject/session/placement-index-test.cpp b/tests/components/proc/mobject/session/placement-index-test.cpp index 0e8a42b1b..702ed206a 100644 --- a/tests/components/proc/mobject/session/placement-index-test.cpp +++ b/tests/components/proc/mobject/session/placement-index-test.cpp @@ -31,6 +31,7 @@ #include "proc/mobject/placement.hpp" #include "lib/util.hpp" #include "proc/mobject/session/testclip.hpp" +#include "proc/mobject/session/testroot.hpp" //#include //#include @@ -67,7 +68,7 @@ namespace test { virtual void run (Arg) { - PlacementIndex index; + PlacementIndex index (make_dummyRoot()); ASSERT (index.isValid()); checkSimpleInsertRemove (index); diff --git a/tests/components/proc/mobject/session/testroot.hpp b/tests/components/proc/mobject/session/testroot.hpp new file mode 100644 index 000000000..a5402ea5a --- /dev/null +++ b/tests/components/proc/mobject/session/testroot.hpp @@ -0,0 +1,51 @@ +/* + TESTROOT.hpp - test dummy model root for checking EDL/Session functionality + + Copyright (C) Lumiera.org + 2009, Hermann Vosseler + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + + +#ifndef MOBJECT_SESSION_TESTROOT_H +#define MOBJECT_SESSION_TESTROOT_H + + +#include "proc/mobject/session/label.hpp" +#include "proc/mobject/session/mobjectfactory.hpp" +#include "lib/symbol.hpp" + +using lib::Symbol; + + +namespace mobject { +namespace session { +namespace test { + + inline Placement