30 unsigned long typeIndex;
40 vector<PortMetadata> portMetadatas;
42 NodeContext *(*compositionCreateContextForNode)(
unsigned long);
43 void (*compositionSetPortValue)(
VuoCompositionState *,
const char *,
const char *, bool, bool, bool, bool, bool);
46 void (*compositionReleasePortData)(
void *,
unsigned long);
49 map<string, vector<NodeMetadata> > nodeMetadatas;
51 map<unsigned long, map<unsigned long, NodeContext *> > nodeContextForIndex;
52 map<unsigned long, string> compositionIdentifierForHash;
53 map<string, map<string, void *> > dataForPort;
54 map<string, map<string, unsigned long> > nodeIndexForPort;
55 map<string, map<string, unsigned long> > typeIndexForPort;
57 map<string, map<string, NodeContext *> > carriedOverNodeContextForIdentifier;
58 map<string, map<string, void *> > carriedOverDataForPort;
59 map<string, map<string, dispatch_semaphore_t> > carriedOverNodeSemaphoreForPort;
60 map<string, map<string, unsigned long> > carriedOverNodeIndexForPort;
61 map<string, map<string, unsigned long> > carriedOverTypeIndexForPort;
63 static const unsigned long topLevelCompositionIndex;
64 static const unsigned long invalidCompositionIndex;
68 static void splitCompositionIdentifier(
const string &compositionIdentifier,
string &parentCompositionIdentifier,
string &nodeIdentifier);
69 static string buildCompositionIdentifier(
const string &parentCompositionIdentifier,
const string &nodeIdentifier);
70 static void splitPortIdentifier(
const string &portIdentifier,
string &nodeIdentifier,
string &portName);
72 string getNodeIdentifierForIndex(
const char *compositionIdentifier,
unsigned long nodeIndex);
73 unsigned long getNodeIndexForIdentifier(
const string &compositionIdentifier,
const string &nodeIdentifier);
74 const NodeMetadata * getNodeMetadataForPort(
const string &compositionIdentifier,
const string &portIdentifier);
75 string getCompositionIdentifierForHash(
unsigned long compositionIdentifierHash);
76 void addNodeContext(
const char *compositionIdentifier,
unsigned long nodeIndex,
struct NodeContext *nodeContext);
77 void removeNodeContext(
const char *compositionIdentifier,
unsigned long nodeIndex);
78 void relocateNodeContext(
const char *compositionIdentifier,
unsigned long nodeIndex);
79 NodeContext * carryOverNodeContext(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
unsigned long nodeIndex);
82 static bool findCachedInfoForPort(
const map<
string, map<string, T> > &cachedInfoForPort,
const string &compositionIdentifier,
const string &portIdentifier,
typename map<string, T>::const_iterator &foundIter);
83 void addPortIdentifier(
const char *compositionIdentifier,
const string &portIdentifier,
void *data,
unsigned long nodeIndex,
unsigned long typeIndex);
84 void removePortIdentifier(
const char *compositionIdentifier,
const string &portIdentifier);
85 void relocatePortIdentifier(
const char *compositionIdentifier,
const string &portIdentifier);
86 void carryOverPortIdentifier(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
const string &portIdentifier,
unsigned long nodeIndex,
unsigned long typeIndex);
87 void carryOverPortIdentifiersForNode(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
const string &nodeIdentifier,
unsigned long nodeIndex,
const vector<string> &portIdentifiers,
const vector<unsigned long> typeIndexes);
88 void removeCarriedOverPortIdentifier(
const char *compositionIdentifier,
const string &oldPortIdentifier);
89 void carryOverPortData(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
const string &oldPortIdentifier,
const string &newPortIdentifier,
PortContext *newPortContext);
100 typedef const char *vuoTopLevelCompositionIdentifierType;
101 vuoTopLevelCompositionIdentifierType vuoTopLevelCompositionIdentifier;
110 void addNodeMetadata(
const char *compositionIdentifier,
const char *nodeIdentifier,
111 NodeContext *(*compositionCreateContextForNode)(
unsigned long),
112 void (*compositionSetPortValue)(
VuoCompositionState *,
const char *,
const char *,
bool,
bool,
bool,
bool,
bool),
115 void (*compositionReleasePortData)(
void *,
unsigned long));
116 void addPortMetadata(
const char *compositionIdentifier,
const char *portIdentifier,
const char *portName,
117 unsigned long typeIndex,
const char *initialValue);
120 void *
getDataForPort(
const char *compositionIdentifier,
const char *portIdentifier);
121 unsigned long getNodeIndexForPort(
const char *compositionIdentifier,
const char *portIdentifier);
122 unsigned long getTypeIndexForPort(
const char *compositionIdentifier,
const char *portIdentifier);
136 NodeContext *(*compositionCreateContextForNode)(
unsigned long),
137 void (*compositionSetPortValue)(
VuoCompositionState *,
const char *,
const char *,
bool,
bool,
bool,
bool,
bool),
140 void (*compositionReleasePortData)(
void *,
unsigned long));
142 unsigned long typeIndex,
const char *initialValue);