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
Abstract description of an ID to variant map.
Definition: Description.h:69
A version of an operator or data type.
Definition: Version.h:46
Description of an input.
Definition: Input.h:28
Description of an input.
Definition: Output.h:28
bool isGreedy
Definition: OperatorInfo.h:41
Version version()
Returns the version of the stromx runtime library.
Definition: Runtime.cpp:54
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
Meta-information about an operator.
Definition: OperatorInfo.h:51
Description of a parameter.
Definition: Parameter.h:34
Definition: OperatorInfo.h:30