]> Creatis software - bbtk.git/blob - kernel/src/bbtkBlackBoxInputDescriptor.h
095215266c5e4c4d7f6b5745047ccc22109d5b47
[bbtk.git] / kernel / src / bbtkBlackBoxInputDescriptor.h
1 /*=========================================================================                                                                               
2   Program:   bbtk
3   Module:    $RCSfile: bbtkBlackBoxInputDescriptor.h,v $
4   Language:  C++
5   Date:      $Date: 2008/10/17 08:18:12 $
6   Version:   $Revision: 1.5 $
7 =========================================================================*/
8
9 /* ---------------------------------------------------------------------
10
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
13 *
14 *  This software is governed by the CeCILL-B license under French law and 
15 *  abiding by the rules of distribution of free software. You can  use, 
16 *  modify and/ or redistribute the software under the terms of the CeCILL-B 
17 *  license as circulated by CEA, CNRS and INRIA at the following URL 
18 *  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
19 *  or in the file LICENSE.txt.
20 *
21 *  As a counterpart to the access to the source code and  rights to copy,
22 *  modify and redistribute granted by the license, users are provided only
23 *  with a limited warranty  and the software's author,  the holder of the
24 *  economic rights,  and the successive licensors  have only  limited
25 *  liability. 
26 *
27 *  The fact that you are presently reading this means that you have had
28 *  knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */                                                                         
30
31
32 /**
33  *  \file 
34  *  \brief Class bbtk::BlackBoxInputDescriptor : abstract descriptor of an input of a black box 
35  */
36 /**
37  * \class bbtk::BlackBoxInputDescriptor
38  * \brief Abstract descriptor of an input of a black box 
39  */
40
41 #ifndef __bbtkBlackBoxInputDescriptor_h__
42 #define __bbtkBlackBoxInputDescriptor_h__
43
44 #include "bbtkBlackBoxInputOutputDescriptor.h"
45
46 namespace bbtk
47 {
48   class BBTK_EXPORT BlackBoxInputDescriptor 
49     : public BlackBoxInputOutputDescriptor
50   {
51   public:
52     typedef enum {
53       MANDATORY,
54       OPTIONAL
55     } OptionType;
56     
57     
58     /// Ctor with name and description
59     BlackBoxInputDescriptor(TypeInfo creator_type_info,
60                             const std::string& name,
61                             const std::string& description,
62                             const std::string& nature,
63                             bool copy_construct = true,
64                             OptionType option = MANDATORY
65                             )
66       : BlackBoxInputOutputDescriptor(creator_type_info,name,
67                                       description,nature,
68                                       copy_construct),
69         mOption(option)
70     {}
71     /// Returns the option of the input
72     OptionType GetOption() const { return mOption; }
73     
74   protected:
75     /// Default ctor is reserved to children
76     BlackBoxInputDescriptor() : BlackBoxInputOutputDescriptor(),
77                                 mOption(OPTIONAL) {}
78
79   private:
80     /// The option of the input 
81     OptionType mOption;
82   };
83   
84 }
85 // namespace bbtk
86 #endif