X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkBlackBox.h;h=db02118273aaa83c2f12a3e7f912c656dca50d1e;hb=064072f6c392f24c17f71d459a9508408a806927;hp=939b5f8d56d9e3138327ae2ba25a40a2005a48bf;hpb=e542f5cdbfc165e80003d21b2fbf0e6a69344bb0;p=bbtk.git diff --git a/kernel/src/bbtkBlackBox.h b/kernel/src/bbtkBlackBox.h index 939b5f8..db02118 100644 --- a/kernel/src/bbtkBlackBox.h +++ b/kernel/src/bbtkBlackBox.h @@ -1,33 +1,38 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + /*========================================================================= Program: bbtk Module: $RCSfile: bbtkBlackBox.h,v $ Language: C++ - Date: $Date: 2011/03/03 14:33:13 $ - Version: $Revision: 1.32 $ + Date: $Date: 2012/11/16 08:49:01 $ + Version: $Revision: 1.34 $ =========================================================================*/ -/* --------------------------------------------------------------------- - -* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) -* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux -* -* This software is governed by the CeCILL-B license under French law and -* abiding by the rules of distribution of free software. You can use, -* modify and/ or redistribute the software under the terms of the CeCILL-B -* license as circulated by CEA, CNRS and INRIA at the following URL -* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -* or in the file LICENSE.txt. -* -* As a counterpart to the access to the source code and rights to copy, -* modify and redistribute granted by the license, users are provided only -* with a limited warranty and the software's author, the holder of the -* economic rights, and the successive licensors have only limited -* liability. -* -* The fact that you are presently reading this means that you have had -* knowledge of the CeCILL-B license and that you accept its terms. -* ------------------------------------------------------------------------ */ - /** @@ -51,14 +56,14 @@ #include // Signal/slot mechanism for output change events -#include +#include #include #define bbtkBlackBoxMessage(key,level,mess) \ - bbtkMessage(key,level,"["< OutputChangeSignalType; typedef OutputChangeSignalType::slot_function_type @@ -298,7 +303,8 @@ namespace bbtk { bbPipeline, bbAlways, - bbReactive + bbReactive, + bbManual } BoxProcessModeValue; @@ -308,16 +314,18 @@ namespace bbtk virtual bool bbBoxProcessModeIsReactive() const; /// Returns true iff the input 'BoxProcessMode' is set to 'Always' (or a synonym) virtual bool bbBoxProcessModeIsAlways() const; + /// Returns true iff the input 'BoxProcessMode' is set to 'Manual' (or a synonym) + virtual bool bbBoxProcessModeIsManual() const; /// Returns the value of the input 'BoxExecute' Void bbGetInputBoxExecute() { return Void(); } /// Sets the value of the input 'BoxExecute' - void bbSetInputBoxExecute(Void = 0) {} + void bbSetInputBoxExecute(Void = 0) { } /// Returns the value of the output 'BoxChange' Void bbGetOutputBoxChange() { return Void(); } /// Sets the value of the output 'BoxChange' - void bbSetOutputBoxChange(Void = 0) { } + void bbSetOutputBoxChange(Void = 0) { } //@} //================================================================== @@ -480,7 +488,7 @@ namespace bbtk //================================================================== /// Computes the final IOStatus of inputs and outputs after processing - void bbComputePostProcessStatus(); +virtual void bbComputePostProcessStatus(); //@} //================================================================== @@ -559,17 +567,13 @@ namespace bbtk //@{ /// Connects the input to the connection c - virtual void bbConnectInput( const std::string& name, - Connection* c); + virtual void bbConnectInput( const std::string& name, Connection* c); /// Connects the output to the connection c - virtual void bbConnectOutput( const std::string& name, - Connection* c); + virtual void bbConnectOutput( const std::string& name, Connection* c); /// Disconnects the input from the connection c - virtual void bbDisconnectInput( const std::string& name, - Connection* c); + virtual void bbDisconnectInput( const std::string& name, Connection* c); /// Disconnects the output from the connection c - virtual void bbDisconnectOutput( const std::string& name, - Connection* c); + virtual void bbDisconnectOutput( const std::string& name, Connection* c); //@} //================================================================== @@ -582,8 +586,6 @@ namespace bbtk /// Sets the bbmExecuting bool returned by bbGetExecuting void bbSetExecuting(bool b) { bbmExecuting = b; } - protected: - //================================================================== protected: @@ -642,6 +644,7 @@ namespace bbtk /// 0 : "Pipeline" mode /// 1 : "Always" mode /// 2 : "Reactive" mode + /// 3 : "Manual" mode std::string bbmBoxProcessMode; /// The parent of the black box in the ComplexBlackBox hierarchy BlackBox::WeakPointer bbmParent; @@ -655,6 +658,9 @@ namespace bbtk /// Map that contains the input connectors of the black box InputConnectorMapType mInputConnectorMap; //================================================================== + + + bool bbLetRecursiveExecuteManualMode; }; // Class BlackBox