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: bbtkAtomicBlackBoxOutputDescriptor.h,v $
32 Date: $Date: 2012/11/16 08:49:01 $
33 Version: $Revision: 1.4 $
34 =========================================================================*/
41 * \brief Class bbtk::AtomicBlackBoxOutputDescriptor : structure containing the description of a AtomicBlackBox output (name, description, type, functor)
44 * \class bbtk::AtomicBlackBoxOutputDescriptor
45 * \brief Structure containing the description of a AtomicBlackBox output (name, description, type, functor)
48 #ifndef __bbtkAtomicBlackBoxOutputDescriptor_h__
49 #define __bbtkAtomicBlackBoxOutputDescriptor_h__
51 #include "bbtkBlackBoxOutputDescriptor.h"
52 #include "bbtkAtomicBlackBoxGetSetFunctor.h"
53 #include "bbtkMessageManager.h"
59 class BBTK_EXPORT AtomicBlackBoxOutputDescriptor :
60 public bbtk::BlackBoxOutputDescriptor
64 AtomicBlackBoxOutputDescriptor( TypeInfo creator_type_info,
65 const std::string& name,
66 const std::string& description,
67 const std::string& nature,
68 AtomicBlackBoxGetFunctor* getfunctor,
69 AtomicBlackBoxSetFunctor* setfunctor,
70 bool copy_construct = true);
71 ~AtomicBlackBoxOutputDescriptor();
73 /// Returns the type of the input
74 TypeInfo GetTypeInfo() const { return mGetFunctor->GetTypeInfo(); }
75 /// Returns the name of the type of the input
76 std::string GetTypeName() const { return mGetFunctor->GetTypeName(); }
77 /// Returns the name of the type of the input
78 std::string GetHumanTypeName() const { return mGetFunctor->GetHumanTypeName(); }
79 /// Returns true iff the type is a pointer to class
80 virtual bool IsPointerType() const { return mGetFunctor->IsPointerType(); } /// Returns the functor on the Get method
81 AtomicBlackBoxGetFunctor* GetGetFunctor() { return mGetFunctor; }
82 /// Returns the functor on the Set method
83 AtomicBlackBoxSetFunctor* GetSetFunctor() { return mSetFunctor; }
87 /// Default ctor is private
88 AtomicBlackBoxOutputDescriptor() :
89 BlackBoxOutputDescriptor(typeid(void),"","","") {}
90 /// The functor on the Get method
91 AtomicBlackBoxGetFunctor* mGetFunctor;
92 /// The functor on the Set method
93 AtomicBlackBoxSetFunctor* mSetFunctor;