X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkExecuter.h;h=fc177e254bccff63993aab000714051de0cebccc;hb=e6b2de923e0e69c303c7d18fb8a5c1970541bb3a;hp=69647a6a94752efd498a67640c2be99195147d0f;hpb=4a17a289103f77885e288aaae250e57c91ae3424;p=bbtk.git diff --git a/kernel/src/bbtkExecuter.h b/kernel/src/bbtkExecuter.h index 69647a6..fc177e2 100644 --- a/kernel/src/bbtkExecuter.h +++ b/kernel/src/bbtkExecuter.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkExecuter.h,v $ $ Language: C++ - Date: $Date: 2008/03/26 08:27:19 $ - Version: $Revision: 1.11 $ + Date: $Date: 2008/04/22 09:40:10 $ + Version: $Revision: 1.14 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -43,19 +43,16 @@ namespace bbtk class /*BBTK_EXPORT*/ Executer : public VirtualExec { - + BBTK_OBJECT_INTERFACE(Executer); + typedef VirtualExec Superclass; public: - - /// Constructor - Executer(); - /// Destructor - ~Executer(); + static Pointer New(); /// Gets the factory used by the executer - Factory* GetFactory() { return mFactory; } + Factory::Pointer GetFactory() { return mFactory; } /// Gets the factory used by the executer (const) - const Factory* GetFactory() const { return mFactory; } + // const Factory::Pointer GetFactory() const { return mFactory; } /// Sets the inputs of the workspace : @@ -98,6 +95,9 @@ namespace bbtk /// End the definition of a ComplexBlackBox void EndDefine (); + /// Sets the kind of the currently defined ComplexBlackBox + void Kind(const std::string& kind); + /// Creates a new black box in current complex box void Create ( const std::string& boxType, const std::string& boxName); @@ -180,13 +180,21 @@ namespace bbtk // static const std::string& GetObjectDescription(); // { static std::string s("Executer"); return s; } + + ComplexBlackBoxDescriptor::Pointer GetWorkspace() + { return mRootCBB.lock(); } + Package::Pointer GetUserPackage() + { return mRootPackage.lock(); } + + /// Gets the current working black box + ComplexBlackBoxDescriptor::Pointer GetCurrentDescriptor() + { return mOpenDefinition.back().box; } + + protected: private: - /// Gets the current working black box - ComplexBlackBoxDescriptor* Current() - { return mOpenDefinition.back().box; } /// Returns true when we are inside a define/endefine block // bool InDefinitionBlock() { return (mOpenDefinition.size()>1); } @@ -195,26 +203,27 @@ namespace bbtk // ATTRIBUTES /// The factory used - Factory* mFactory; + Factory::Pointer mFactory; /// The Root Package /// Contains the root ComplexBlabkBox /// In which ComplexBlackBoxes are put by default /// Its name in bbi is 'user' - Package* mRootPackage; + Package::WeakPointer mRootPackage; /// The root ComplexBlackBox /// in which operations are done when outside a define/endefine block /// Its name in bbi is 'workspace' - ComplexBlackBoxDescriptor* mRootCBB; + ComplexBlackBoxDescriptor::WeakPointer mRootCBB; /// Struct that stores info on user defined complex black boxes struct CBBDefinition { - ComplexBlackBoxDescriptor* box; + ComplexBlackBoxDescriptor::Pointer box; std::string package; - CBBDefinition(ComplexBlackBoxDescriptor* d, const std::string& p ) + CBBDefinition(ComplexBlackBoxDescriptor::Pointer d, + const std::string& p ) : box(d), package(p) {} }; @@ -225,7 +234,7 @@ namespace bbtk /// The stack of current working package /// (is a stack for nested definitions) - std::deque mOpenPackage; + std::deque mOpenPackage; /// The input values of the Root ComplexBlackBox std::map mInputs;