stromx  0.7.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
DescriptionBase.h
1 /*
2  * Copyright 2015 Matthias Fuchs
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef STROMX_RUNTIME_DESCRIPTIONBASE_H
18 #define STROMX_RUNTIME_DESCRIPTIONBASE_H
19 
20 #include <vector>
21 
22 #include <string>
23 #include "stromx/runtime/Config.h"
24 #include "stromx/runtime/VariantHandle.h"
25 #include "stromx/runtime/Enum.h"
26 #include "stromx/runtime/None.h"
27 
28 namespace stromx
29 {
30  namespace runtime
31  {
34  {
35  public:
37  explicit EnumDescription(const Enum & value)
38  : m_value(value)
39  {}
40 
42  EnumDescription(const Enum & value, const std::string & title)
43  : m_value(value),
44  m_title(title)
45  {}
46 
48  const Enum value() const { return m_value; }
49 
51  const std::string & title() const { return m_title; }
52 
53  private:
54  Enum m_value;
55  std::string m_title;
56  };
57 
69  class STROMX_RUNTIME_API DescriptionBase
70  {
71  public:
73  DescriptionBase(const unsigned int id, const VariantHandle& variant);
74 
75  virtual ~DescriptionBase() {}
76 
78  const std::string & title() const { return m_title; }
79 
81  unsigned int id() const { return m_id; }
82 
84  const VariantHandle & variant() const { return m_variant; }
85 
87  void setTitle(const std::string & title) { m_title = title; }
88 
90  const VariantHandle & visualization() const { return m_visualization; }
91 
93  void setVisualization(const VariantHandle & visualization);
94 
96  virtual const Data& max() const { return NONE; }
97 
99  virtual const Data& min() const { return NONE; }
100 
105  virtual const Data& step() const { return NONE; }
106 
108  virtual const std::vector<EnumDescription> & descriptions() const { return NO_DESCRIPTIONS; }
109 
114  virtual unsigned int rows() const { return 0; }
115 
120  virtual unsigned int cols() const { return 0; }
121 
122  private:
123  static const std::vector<EnumDescription> NO_DESCRIPTIONS;
124  static const None NONE;
125 
126  std::string m_title;
127  unsigned int m_id;
128  VariantHandle m_variant;
129  VariantHandle m_visualization;
130  };
131  }
132 }
133 
134 #endif // STROMX_RUNTIME_DESCRIPTIONBASE_H
Abstract description of an ID to variant map.
Definition: DescriptionBase.h:69
virtual const Data & max() const
Definition: DescriptionBase.h:96
EnumDescription(const Enum &value, const std::string &title)
Definition: DescriptionBase.h:42
Abstract data object.
Definition: Data.h:53
Definition: VariantHandle.h:34
void setTitle(const std::string &title)
Definition: DescriptionBase.h:87
const VariantHandle & visualization() const
Definition: DescriptionBase.h:90
virtual const std::vector< EnumDescription > & descriptions() const
Definition: DescriptionBase.h:108
const std::string & title() const
Definition: DescriptionBase.h:51
Description of an enumeration value.
Definition: DescriptionBase.h:33
const std::string & title() const
Definition: DescriptionBase.h:78
const VariantHandle & variant() const
Definition: DescriptionBase.h:84
const Enum value() const
Definition: DescriptionBase.h:48
virtual unsigned int rows() const
Definition: DescriptionBase.h:114
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
virtual unsigned int cols() const
Definition: DescriptionBase.h:120
unsigned int id() const
Definition: DescriptionBase.h:81
Undefined and empty data object.
Definition: None.h:27
virtual const Data & step() const
Definition: DescriptionBase.h:105
EnumDescription(const Enum &value)
Definition: DescriptionBase.h:37
virtual const Data & min() const
Definition: DescriptionBase.h:99
Value of an enumeration.
Definition: Enum.h:27