X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fappli%2Fbbfy%2Fbbfy.cpp;h=43f89023c53ed59c3d9f223eed78d26fe0347a03;hb=cfad95b6e08e6e53846ffcda7fbc5932065f2c47;hp=c22be3230c127a088389c5f7c3401acecee11f9d;hpb=1e2df7fb6ae571ce1cf72e6af1715f0e34675cbf;p=bbtk.git diff --git a/kernel/appli/bbfy/bbfy.cpp b/kernel/appli/bbfy/bbfy.cpp index c22be32..43f8902 100644 --- a/kernel/appli/bbfy/bbfy.cpp +++ b/kernel/appli/bbfy/bbfy.cpp @@ -1,3 +1,29 @@ +/* +# --------------------------------------------------------------------- +# +# 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. +# ------------------------------------------------------------------------ */ + #ifdef WIN32 #define _CRT_SECURE_NO_DEPRECATE #endif @@ -63,7 +89,7 @@ private: bool mIsWidget; std::string mParentBlackBox; std::string mItkParent; - std::string mVtkParent; + std::string mVtkObject; bool mGeneric; std::string mAuthor; std::string mDescription; @@ -79,9 +105,9 @@ private: std::vector mInclude; std::vector mTypedef; - std::string mUserConstructor; - std::string mUserCopyConstructor; - std::string mUserDestructor; + std::string mUserSetDefaultValues; + std::string mUserInitializeProcessing; + std::string mUserFinalizeProcessing; typedef struct { @@ -105,6 +131,8 @@ private: std::string mHName; std::string mCxxName; + void AlertString(); + }; //========================================================================== @@ -140,11 +168,22 @@ void bbfy::CreateBlackBox() } //========================================================================== - +void bbfy::AlertString() +{ + + mFile << "//===== \n"; + mFile << "// Before editing this file, make sure it's a file of your own "; + mFile << "(i.e.: it wasn't generated from xml description; if so : your modifications will be lost)\n"; + mFile << "//===== \n"; + +} //========================================================================== void bbfy::ParseXML() { + + + XMLResults* res = new XMLResults; XMLNode BB = XMLNode::parseFile(mFilename.c_str(),"blackbox",res); @@ -196,27 +235,27 @@ void bbfy::ParseXML() else if (bbtype == vtkImageAlgorithmString) { mType = vtkImageAlgorithm; - // Looks for tag - if (!BB.nChildNode("vtkparent")) + // Looks for tag + if (!BB.nChildNode("vtkobject")) { throw bbfyException("Error : blackbox type '" +vtkImageAlgorithmString - +"' but no tag found (mandatory)"); + +"' but no tag found (mandatory)"); } - bbtk::GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent); + bbtk::GetTextOrClear(BB.getChildNode("vtkobject"),mVtkObject); // } else if (bbtype == vtkPolyDataAlgorithmString ) { mType = vtkPolyDataAlgorithm; - // Looks for tag - if (!BB.nChildNode("vtkparent")) + // Looks for tag + if (!BB.nChildNode("vtkobject")) { throw bbfyException("Error : blackbox type '" +vtkPolyDataAlgorithmString - +"' but no tag found (mandatory)"); + +"' but no tag found (mandatory)"); } - bbtk::GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent); + bbtk::GetTextOrClear(BB.getChildNode("vtkobject"),mVtkObject); // } else @@ -276,25 +315,30 @@ void bbfy::ParseXML() bbtk::GetTextOrClear(BB.getChildNode("namespace"),mNamespace); } - // UserConstructor body - if (BB.nChildNode("constructor")) + // UserSetDefaultValues body + if (BB.nChildNode("defaultValues")) { - bbtk::GetTextOrClear(BB.getChildNode("constructor"),mUserConstructor); + bbtk::GetTextOrClear(BB.getChildNode("defaultValues"), + mUserSetDefaultValues); } - // UserCopyConstructor body - if (BB.nChildNode("copyconstructor")) + // UserInitializeProcessing body + if (BB.nChildNode("initializeProcessing")) { - bbtk::GetTextOrClear(BB.getChildNode("copyconstructor"),mUserCopyConstructor); + bbtk::GetTextOrClear(BB.getChildNode("initializeProcessing"), + mUserInitializeProcessing); } - // UserDestructor body - if (BB.nChildNode("destructor")) + // UserFinalizeProcessing body + if (BB.nChildNode("finalizeProcessing")) { - bbtk::GetTextOrClear(BB.getChildNode("destructor"),mUserDestructor); + bbtk::GetTextOrClear(BB.getChildNode("finalizeProcessing"), + mUserFinalizeProcessing); } - - // Template parameters + + + + // Template parameters // mNbTemplateParam = BB.nChildNode("template"); if ( BB.nChildNode("template") > 0) @@ -421,7 +465,7 @@ void bbfy::ParseXML() // process tag given ? if (BB.nChildNode("process")) { - bbtk::GetTextOrClear(BB.getChildNode("process"),mProcess); + bbtk::GetTextOrClear(BB.getChildNode("process"),mProcess); } // CreateWidget @@ -430,6 +474,30 @@ void bbfy::ParseXML() { bbtk::GetTextOrClear(BB.getChildNode("createwidget"),mCreateWidget); } + + + + + + + + // OBSOLETE/UNSUPPORTED TAGS + // WARN IF OBSOLETE TAGS PROVIDED + if (BB.nChildNode("constructor")) + { + std::cout << "WARNING !!! The tag is obsolete !!"< is obsolete !!"< is obsolete !!"<::iterator i; for (i=mInclude.begin(); i!=mInclude.end(); ++i) { @@ -516,7 +586,7 @@ void bbfy::CreateHeader() } // Class declaration and parents - mFile << "class /*BBTK_EXPORT*/ "<::iterator ioi; @@ -659,6 +715,7 @@ void bbfy::CreateHeader() throw bbfyException(mess); } } + // Outputs for (ioi=mOutput.begin(); ioi!=mOutput.end(); ++ioi) @@ -722,6 +779,7 @@ void bbfy::CreateHeader() mFile << " void CreateWidget(wxWindow*);\n"; } + AlertString(); // EO black box declaration mFile << "};\n\n"; @@ -749,7 +807,8 @@ void bbfy::CreateHeader() { throw bbfyException("template bb with more than 1 templ param not impl"); } - + + // Author mFile << "BBTK_AUTHOR(\""<