X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkAtomicBlackBoxMacros.h;h=731ceed4518f5dc01b720e1cbc84d37a13de0628;hb=87efce51877a540d943b1aa26307994b38bba55b;hp=d68ce239eb5eaf23284dde7a264e93301571edfc;hpb=6575a389b71b1b85c79e4444885becb76ecf16e4;p=bbtk.git diff --git a/kernel/src/bbtkAtomicBlackBoxMacros.h b/kernel/src/bbtkAtomicBlackBoxMacros.h index d68ce23..731ceed 100644 --- a/kernel/src/bbtkAtomicBlackBoxMacros.h +++ b/kernel/src/bbtkAtomicBlackBoxMacros.h @@ -1,32 +1,39 @@ -/*========================================================================= +/* + # --------------------------------------------------------------------- + # + # 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: bbtkAtomicBlackBoxMacros.h,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:12 $ - Version: $Revision: 1.11 $ + Date: $Date: 2012/11/16 08:49:01 $ + Version: $Revision: 1.20 $ =========================================================================*/ -/* --------------------------------------------------------------------- - -* 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. -* ------------------------------------------------------------------------ */ + @@ -41,7 +48,7 @@ /// Declares the standard interface of a AtomicBlackBox /// (ctor, New, descriptor related methods) #define BBTK_BLACK_BOX_INTERFACE_INTERNAL_WITHOUT_NEW(CLASS,PARENT) \ - BBTK_OBJECT_MINIMAL_INTERFACE; \ + BBTK_OBJECT_MINIMAL_INTERFACE; \ private: \ protected: \ CLASS(const std::string& name, bool allocate_connectors = true); \ @@ -53,10 +60,23 @@ { return std::string(#CLASS)+std::string(" '") \ +bbGetNameWithParent()+std::string("'"); } \ virtual void bbLockDescriptor(); \ + virtual void bbUserSetDefaultValues(); \ + virtual void bbUserInitializeProcessing(); \ + virtual void bbUserFinalizeProcessing(); \ + virtual void bbRecursiveInitializeProcessing() \ + { \ + PARENT::bbRecursiveInitializeProcessing(); \ + CLASS::bbUserInitializeProcessing(); \ + } \ + virtual void bbRecursiveFinalizeProcessing() \ + { \ + CLASS::bbUserFinalizeProcessing(); \ + PARENT::bbRecursiveFinalizeProcessing(); \ + } \ private: \ CLASS() : PARENT("") {} \ CLASS(const CLASS&) : PARENT("") {} - + //============================================================================ //============================================================================ @@ -85,14 +105,27 @@ } \ inline bbtk::BlackBox::Pointer bbClone(const std::string& name) \ { \ - bbtkDebugMessage("object",1,"##> "<<#CLASS \ - <<"::bbClone(\""< "<<#CLASS \ + <<"::bbClone(\""< Processing ["< Processing..." \ + < "<<#CLASS<<"::"<<#CLASS \ - <<"(\""< "<<#CLASS<<"::"<<#CLASS \ + <<"()"< "<<#CLASS<<"::"<<#CLASS \ - <<"("< "<<#CLASS<<"::"<<#CLASS \ + <<"("< "<<#CLASS <<"::~"<< #CLASS \ - <<"() ["<bbGetFullName()<<"]"< "<<#CLASS <<"::~"<< #CLASS \ + <<"()"<bbGetFullName()<<"]"<::bbSetOutput##NAME) ) ) //============================================================================ + +//JCP 09JUIN2009 BBTK_EXPORT + //============================================================================ /// Template AtomicBlackBox std implementation of ctor and dtor #define BBTK_BLACK_BOX_TEMPLATE_IMPLEMENTATION(CLASS,PARENT) \ @@ -515,7 +562,7 @@ : PARENT(name,false) \ { \ BBTK_BEGIN_BLACK_BOX_CONSTRUCTOR(CLASS,alloc); \ - CLASS::bbUserConstructor(); \ + CLASS::bbUserSetDefaultValues(); \ BBTK_END_BLACK_BOX_CONSTRUCTOR(CLASS); \ } \ template \ @@ -524,14 +571,13 @@ : PARENT(from,name,false) \ { \ BBTK_BEGIN_BLACK_BOX_COPY_CONSTRUCTOR(CLASS,from,allocate_connectors); \ - CLASS::bbUserCopyConstructor(); \ - BBTK_END_BLACK_BOX_COPY_CONSTRUCTOR(CLASS,from); \ + CLASS::bbUserSetDefaultValues(); \ + BBTK_END_BLACK_BOX_COPY_CONSTRUCTOR(CLASS,from,allocate_connectors); \ } \ template \ CLASS::~CLASS() \ { \ BBTK_BEGIN_BLACK_BOX_DESTRUCTOR(CLASS); \ - CLASS::bbUserDestructor(); \ BBTK_END_BLACK_BOX_DESTRUCTOR(CLASS); \ } \ template \ @@ -690,7 +736,7 @@ : PARENT(name,false) \ { \ BBTK_BEGIN_BLACK_BOX_CONSTRUCTOR(CLASS,alloc); \ - CLASS::bbUserConstructor(); \ + CLASS::bbUserSetDefaultValues(); \ BBTK_END_BLACK_BOX_CONSTRUCTOR(CLASS); \ } \ template \ @@ -699,14 +745,13 @@ : PARENT(from,name,false) \ { \ BBTK_BEGIN_BLACK_BOX_COPY_CONSTRUCTOR(CLASS,from,allocate_connectors); \ - CLASS::bbUserCopyConstructor(); \ - BBTK_END_BLACK_BOX_COPY_CONSTRUCTOR(CLASS,from); \ + CLASS::bbUserSetDefaultValues(); \ + BBTK_END_BLACK_BOX_COPY_CONSTRUCTOR(CLASS,from,allocate_connectors); \ } \ template \ CLASS::~CLASS() \ { \ BBTK_BEGIN_BLACK_BOX_DESTRUCTOR(CLASS); \ - CLASS::bbUserDestructor(); \ BBTK_END_BLACK_BOX_DESTRUCTOR(CLASS); \ } \ template \ @@ -717,46 +762,6 @@ //============================================================================ -/* -//============================================================================ -/// Template AtomicBlackBox std implementation of ctor and dtor -#define BBTK_BLACK_BOX_TEMPLATE2_WITH_TYPES_IMPLEMENTATION(CLASS,PARENT,TYPE1,TYPE2) \ - template \ - CLASS::CLASS(const std::string& name, bool alloc) \ - : PARENT(name,false) \ - { \ - BBTK_BEGIN_BLACK_BOX_CONSTRUCTOR(CLASS,alloc); \ - this->bbUserConstructor(); \ - BBTK_END_BLACK_BOX_CONSTRUCTOR; \ - } \ - template \ - CLASS::CLASS(CLASS& from, \ - const std::string& name, bool allocate_connectors) \ - : PARENT(from,name,false) \ - { \ - BBTK_BEGIN_BLACK_BOX_COPY_CONSTRUCTOR(CLASS,from,allocate_connectors); \ - this->bbUserCopyConstructor(); \ - BBTK_END_BLACK_BOX_CONSTRUCTOR; \ - } \ - template \ - CLASS::~CLASS() \ - { \ - BBTK_BEGIN_BLACK_BOX_DESTRUCTOR(CLASS); \ - this->bbUserDestructor(); \ - BBTK_END_BLACK_BOX_DESTRUCTOR; \ - } \ - template \ - void CLASS::bbLockDescriptor() \ - { \ - bbmDescriptorPointer = CLASS ## Descriptor::Instance(); \ - } -//============================================================================ - -*/ - - - -