stromx  0.8.0
OperatorInfo.h
1 /*
2  * Copyright 2011 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_OPERATORINFO_H
18 #define STROMX_RUNTIME_OPERATORINFO_H
19 
20 #include <vector>
21 #include "stromx/runtime/Input.h"
22 #include "stromx/runtime/Output.h"
23 #include "stromx/runtime/Parameter.h"
24 #include "stromx/runtime/Version.h"
25 
26 namespace stromx
27 {
28  namespace runtime
29  {
31  {
32  OperatorProperties() : isGreedy(false) {}
33 
41  bool isGreedy;
42  };
43 
52  {
53  public:
55  virtual const std::string& type() const = 0;
56 
58  virtual const std::string& package() const = 0;
59 
61  virtual const Version& version() const = 0;
62 
67  virtual const std::vector<const Input*>& inputs() const = 0;
68 
74  virtual const std::vector<const Output*>& outputs() const = 0;
75 
82  virtual const std::vector<const Parameter*>& parameters() const = 0;
83 
89  virtual const Output & output(const unsigned int id) const = 0;
90 
96  virtual const Input & input(const unsigned int id) const = 0;
97 
103  virtual const Parameter & parameter(const unsigned int id) const = 0;
104 
110  virtual const Description & description(const unsigned int id) const = 0;
111 
115  virtual const OperatorProperties & properties() const = 0;
116  };
117  }
118 }
119 
120 #endif // STROMX_RUNTIME_OPERATORINFO_H
virtual const std::vector< const Output * > & outputs() const =0
Abstract description of an ID to variant map.
Definition: Description.h:69
A version of an operator or data type.
Definition: Version.h:49
virtual const std::string & type() const =0
Description of an input.
Definition: Input.h:28
virtual const Output & output(const unsigned int id) const =0
Description of an input.
Definition: Output.h:28
bool isGreedy
Definition: OperatorInfo.h:41
virtual const Input & input(const unsigned int id) const =0
virtual const std::vector< const Input * > & inputs() const =0
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
virtual const OperatorProperties & properties() const =0
virtual const Description & description(const unsigned int id) const =0
Meta-information about an operator.
Definition: OperatorInfo.h:51
Description of a parameter.
Definition: Parameter.h:34
virtual const std::vector< const Parameter * > & parameters() const =0
virtual const Version & version() const =0
virtual const std::string & package() const =0
Definition: OperatorInfo.h:30
virtual const Parameter & parameter(const unsigned int id) const =0