Program: bbtk
Module: $RCSfile: bbtkExecuter.h,v $ $
Language: C++
- Date: $Date: 2008/01/22 15:02:00 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2008/01/28 15:08:53 $
+ Version: $Revision: 1.3 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
public:
- /*
- typedef enum
- {
- NoDialog,
- TextDialog,
- GraphicalDialog
- }
- DialogModeType;
-*/
-
/// Constructor
Executer();
/// Sets the mode of dialog of the executer for Root inputs
void SetDialogMode(DialogModeType t) { mDialogMode = t; }
+ /// Starts a package block
+ void BeginPackage (const std::string &name );
+
+ /// Ends a package block
+ void EndPackage ();
+
/// Starts the definition of a new ComplexBlackBox in package pack
/// scriptfilename is the file from which the def is read
void Define (const std::string &name,
private:
/// Gets the current working black box
- ComplexBlackBoxDescriptor* Current() { return mCurrent.back().box; }
+ ComplexBlackBoxDescriptor* Current()
+ { return mOpenDefinition.back().box; }
/// Returns true when we are inside a define/endefine block
- // bool InDefinitionBlock() { return (mCurrent.size()>1); }
+ // bool InDefinitionBlock() { return (mOpenDefinition.size()>1); }
//==================================================================
// ATTRIBUTES
/// The root ComplexBlackBox, in which operations are done when outside a define/endefine block
/// Its name in bbi is 'workspace'
ComplexBlackBoxDescriptor* mRoot;
-
+
/// Struct that stores info on user defined complex black boxes
struct CBBDefinition
{
/// The stack of current working ComplexBlackBox
/// (is a stack for nested definitions)
/// only contains the root when outside a define/endefine block
- std::deque<CBBDefinition> mCurrent;
+ std::deque<CBBDefinition> mOpenDefinition;
+
+ /// The stack of current working package
+ /// (is a stack for nested definitions)
+ std::deque<Package*> mOpenPackage;
/// flag which is true when we are inside a Define/EndDefine block
// bool mDefineFlag;