Program: bbtk
Module: $RCSfile: bbtkTranscriptor.h,v $ $
Language: C++
- Date: $Date: 2008/01/22 17:00:17 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2008/02/05 12:16:55 $
+ 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
*/
#ifndef __bbtkTranscriptor_h__
-#define __bbtkTranscriptor_h__
+#define __bbtkTranscriptor_h__
#include "bbtkVirtualExec.h"
+#include "bbtkSystem.h"
+#include "bbtkComplexBlackBox.h"
+#include "bbtkFactory.h"
+#include <string>
+#include <deque>
#include <iostream>
namespace bbtk
class /*BBTK_EXPORT*/ Transcriptor : public VirtualExec
{
- public:
+ public:
/// Constructor
Transcriptor(std::string filename);
-
+
/// Destructor
~Transcriptor( );
//void SetNoExecMode(bool b) { mNoExecMode = b; }
void SetNoExecMode(bool b)
{
- m_Fp << "e->SetNoExecMode(true);" << std::endl;
- }
+ m_Fp << "e->SetNoExecMode(true);" << std::endl;
+ }
bool GetNoExecMode() const { return mNoExecMode; }
/*
- bool GetNoExecMode() const
+ bool GetNoExecMode() const
{
// cannot compile, since ethos is 'const' !
- //m_Fp << "e->GetNoExecMode(true);" << std::endl;
+ //m_Fp << "e->GetNoExecMode(true);" << std::endl;
}
*/
/// 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,
/// changes the workspace name
void SetWorkspaceName( const std::string& n );
- ///Adds the authorName to the Box's author list
+ ///Adds the authorName to the Box author list
void Author(const std::string &authorName);
+ ///Adds the Categories to the Box category list
+ void Category(const std::string &category);
+
/// The description string which explains what does the ComplexBox
void Description(const std::string & d);
void Reset();
- // static const std::string& GetObjectDescription()
+ // static const std::string& GetObjectDescription()
// { static std::string s("Executer"); return s; }
protected:
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;
DialogModeType mDialogMode;
/// File Pointer, to hold generated C++ code.
- // std::ofstream *m_Fp;
- std::ofstream m_Fp;
+ // std::ofstream *m_Fp;
+ std::ofstream m_Fp;
};
}
#endif