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