Program: bbtk
Module: $RCSfile: bbtkBlackBox.h,v $
Language: C++
- Date: $Date: 2009/10/13 17:39:21 $
- Version: $Revision: 1.30 $
+ Date: $Date: 2011/03/01 14:50:28 $
+ Version: $Revision: 1.31 $
=========================================================================*/
/* ---------------------------------------------------------------------
namespace bbtk
{
-
struct Void { Void(int = 0) {} };
class Factory;
class Connection;
class BlackBoxOutputConnector;
-
-
class BBTK_EXPORT BlackBox : public Object
{
BBTK_ABSTRACT_OBJECT_INTERFACE(BlackBox);
/// Sets the value of the input 'BoxProcessMode'
void bbSetInputBoxProcessMode(std::string a) { bbmBoxProcessMode = a; }
/// The possible values of the input 'BoxProcessMode'
- typedef enum
- {
- Pipeline,
- Always,
- Reactive
- }
+
+ typedef enum
+ {
+ Pipeline,
+ Always,
+ Reactive
+ }
BoxProcessModeValue;
+
/// Returns the "decoded" value of the input "BoxProcessMode"
BoxProcessModeValue bbGetBoxProcessModeValue() const;
/// Returns true iff the input 'BoxProcessMode' is set to 'Reactive' (or a synonym)
//@}
//==================================================================
-
-
-
virtual void bbPrintHelp(BlackBox::Pointer parentblackbox,
int detail, int level
);
protected:
-
-
//==================================================================
/// @name User redefinable methods
/// Virtual methods which can be redefined by inherited classes
//@{
-
//==================================================================
/// User can redefine this method to set
/// the default values of the box inputs and outputs
//==================================================================
-
-
//==================================================================
/// Write Graphviz-dot description in file.
bool inputoutput,
int detail, int level);
-
-
virtual BlackBox::Pointer bbFindBlackBox(const std::string &blackboxname)
- { return BlackBox::Pointer();}
+ { return BlackBox::Pointer();}
virtual void Check(bool recursive = true);
-
-
-
//==================================================================
// PROTECTED PART : ACCESSIBLE TO THE BlackBox DEVELOPER
// (IN INHERITED CLASSES)
//@}
//==================================================================
-
-
private:
//==================================================================
friend class Connection;
/// which means execute in response to an input change
virtual bool bbCanReact() const;
-
-
-
-
/// Returns true iff the box is executing
bool bbGetExecuting() const { return bbmExecuting; }
/// Sets the bbmExecuting bool returned by bbGetExecuting
void bbSetExecuting(bool b) { bbmExecuting = b; }
-
-
protected:
//==================================================================
//JCP 21-09-20 09 delete this throws and exception change due to compiler version changing and boost version
virtual int bbDelete() { delete this;
- return 0; }
+ return 0; }
//==================================================================
/// Map that contains the input connectors of the black box
InputConnectorMapType mInputConnectorMap;
//==================================================================
-
-
};
// Class BlackBox
-
/// Convenient macro to create output observer callbacks (freehand functions) from object and method pointer (see samples/SampleOutputObserver)
#define BBTK_MAKE_OUTPUT_OBSERVER(OBJECT,METHOD) \
boost::bind( METHOD, OBJECT, _1, _2, _3)
-
-
-
-
}
// namespace bbtk
#endif
-