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
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 :
/// 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);
// 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); }
// 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) {}
};
/// The stack of current working package
/// (is a stack for nested definitions)
- std::deque<Package*> mOpenPackage;
+ std::deque<Package::WeakPointer> mOpenPackage;
/// The input values of the Root ComplexBlackBox
std::map<std::string,std::string> mInputs;