2 # ---------------------------------------------------------------------
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
10 # This software is governed by the CeCILL-B license under French law and
11 # abiding by the rules of distribution of free software. You can use,
12 # modify and/ or redistribute the software under the terms of the CeCILL-B
13 # license as circulated by CEA, CNRS and INRIA at the following URL
14 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15 # or in the file LICENSE.txt.
17 # As a counterpart to the access to the source code and rights to copy,
18 # modify and redistribute granted by the license, users are provided only
19 # with a limited warranty and the software's author, the holder of the
20 # economic rights, and the successive licensors have only limited
23 # The fact that you are presently reading this means that you have had
24 # knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ */
28 /*=========================================================================
30 Module: $RCSfile: bbtkAtomicBlackBoxInputDescriptor.h,v $
32 Date: $Date: 2012/11/16 08:49:01 $
33 Version: $Revision: 1.4 $
34 =========================================================================*/
39 * \brief Class bbtk::AtomicBlackBoxInputDescriptor : structure containing the description of a AtomicBlackBox input (name, description, type, functor)
42 * \class bbtk::AtomicBlackBoxInputDescriptor
43 * \brief Structure containing the description of a AtomicBlackBox input (name, description, type, functor)
46 #ifndef __bbtkAtomicBlackBoxInputDescriptor_h__
47 #define __bbtkAtomicBlackBoxInputDescriptor_h__
49 #include "bbtkBlackBoxInputDescriptor.h"
50 #include "bbtkAtomicBlackBoxGetSetFunctor.h"
57 class BBTK_EXPORT AtomicBlackBoxInputDescriptor :
58 public bbtk::BlackBoxInputDescriptor
67 AtomicBlackBoxInputDescriptor( TypeInfo creator_type_info,
68 const std::string& name,
69 const std::string& description,
70 const std::string& nature,
71 AtomicBlackBoxGetFunctor* getfunctor,
72 AtomicBlackBoxSetFunctor* setfunctor,
73 bool copy_construct = true);
75 ~AtomicBlackBoxInputDescriptor();
76 /// Returns the type of the input
77 TypeInfo GetTypeInfo() const { return mGetFunctor->GetTypeInfo(); }
78 /// Returns the name of the type of the input
79 std::string GetTypeName() const { return mGetFunctor->GetTypeName(); }
80 /// Returns the name of the type of the input
81 std::string GetHumanTypeName() const { return mGetFunctor->GetHumanTypeName(); }
82 /// Returns true iff the type is a pointer to class
83 virtual bool IsPointerType() const { return mGetFunctor->IsPointerType(); }
84 /// Returns the functor on the Get method
85 AtomicBlackBoxGetFunctor* GetGetFunctor() { return mGetFunctor; }
86 /// Returns the functor on the Set method
87 AtomicBlackBoxSetFunctor* GetSetFunctor() { return mSetFunctor; }
91 /// Default ctor is private
92 AtomicBlackBoxInputDescriptor() :
93 BlackBoxInputDescriptor(typeid(void),"","","") {}
94 /// The functor on the Get method
95 AtomicBlackBoxGetFunctor* mGetFunctor;
96 /// The functor on the Set method
97 AtomicBlackBoxSetFunctor* mSetFunctor;