From 87362a4b0d99349278a6b7020ea1baf92c5277df Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Thu, 21 May 2009 20:26:44 +0200 Subject: [PATCH] WIP draft for a generic hash based and typed id, similar to asset::ID --- src/proc/mobject/placement-ref.hpp | 39 +++++++++++++++++++ .../proc/mobject/placement-ref-test.cpp | 7 ++++ 2 files changed, 46 insertions(+) diff --git a/src/proc/mobject/placement-ref.hpp b/src/proc/mobject/placement-ref.hpp index eb94005bd..8bfec1ab2 100644 --- a/src/proc/mobject/placement-ref.hpp +++ b/src/proc/mobject/placement-ref.hpp @@ -45,6 +45,45 @@ namespace mobject { // using std::tr1::shared_ptr; + /** @todo WIP a generic hash-index, maybe also usable for assets */ + struct LuidH + { + long dummy_; + }; + + template + struct HaID; + + struct TestA + { + LuidH id_; + HaID const& getID() const; + }; + struct TestBA : TestA {}; + struct TestBB : TestA {}; + + template<> + struct HaID : LuidH + { + HaID () : LuidH () {} + HaID (TestA const& ref) : LuidH (ref.getID()) {} + }; + + template + struct HaID : HaID + { + HaID () : HaID () {} + HaID (T const& ref) : HaID (ref) {} + }; + + inline + HaID const& + TestA::getID() const + { + return *(static_cast*> (&id_)); + } + + /** */ diff --git a/tests/components/proc/mobject/placement-ref-test.cpp b/tests/components/proc/mobject/placement-ref-test.cpp index 4651c169a..d9869e2b0 100644 --- a/tests/components/proc/mobject/placement-ref-test.cpp +++ b/tests/components/proc/mobject/placement-ref-test.cpp @@ -27,6 +27,7 @@ //#include "proc/mobject/session/edl.hpp" //#include "proc/mobject/session/testclip.hpp" #include "proc/mobject/placement.hpp" +#include "proc/mobject/placement-ref.hpp" //#include "proc/mobject/explicitplacement.hpp" //#include "lib/util.hpp" @@ -46,6 +47,12 @@ namespace test { using asset::VIDEO; + /** @todo WIP a generic hash-index, maybe also usable for assets */ + HaID hahaBB1; + + TestBA bab; + HaID hahaBA1 (bab); + ///////////////////////////////TODO (Experimentation) /***************************************************************************