Vuo  2.0.2
VuoProtocol.hh
Go to the documentation of this file.
1 
10 #pragma once
11 
12 class VuoRunner;
13 
19 {
20 public:
21  static vector<VuoProtocol *> getProtocols(void);
22 
23  static VuoProtocol *getProtocol(string id);
24  static string imageFilter;
25  static string imageGenerator;
26  static string imageTransition;
27 
28  VuoProtocol(string id, string protocolName);
29 
30  string getId(void);
31  string getName(void);
32  vector<pair<string, string> > getInputPortNamesAndTypes(void);
33  vector<pair<string, string> > getOutputPortNamesAndTypes(void);
34  bool hasInputPort(string portName);
35  bool hasOutputPort(string portName);
36  string getTypeForInputPort(string portName);
37  string getTypeForOutputPort(string portName);
38 
39  void addInputPort(string portName, string portType);
40  void addOutputPort(string portName, string portType);
41 
42  bool isCompositionCompliant(string compositionAsString);
43  bool isCompositionCompliant(VuoRunner *runner);
44 
45  static vector<VuoProtocol *> getCompositionProtocols(string compositionAsString);
46  static vector<VuoProtocol *> getCompositionProtocols(VuoRunner *runner);
47 
48 private:
49  static vector<VuoProtocol *> protocols;
50  string id;
51  string name;
52  vector<pair<string, string> > inputPortNamesAndTypes;
53  vector<pair<string, string> > outputPortNamesAndTypes;
54 };