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, dispatch_semaphore_t> > nodeSemaphoreForPort;
55 map<string, map<string, unsigned long> > nodeIndexForPort;
56 map<string, map<string, unsigned long> > typeIndexForPort;
58 map<string, map<string, NodeContext *> > carriedOverNodeContextForIdentifier;
59 map<string, map<string, void *> > carriedOverDataForPort;
60 map<string, map<string, dispatch_semaphore_t> > carriedOverNodeSemaphoreForPort;
61 map<string, map<string, unsigned long> > carriedOverNodeIndexForPort;
62 map<string, map<string, unsigned long> > carriedOverTypeIndexForPort;
64 static const unsigned long topLevelCompositionIndex;
65 static const unsigned long invalidCompositionIndex;
69 static void splitCompositionIdentifier(
const string &compositionIdentifier,
string &parentCompositionIdentifier,
string &nodeIdentifier);
70 static string buildCompositionIdentifier(
const string &parentCompositionIdentifier,
const string &nodeIdentifier);
71 static void splitPortIdentifier(
const string &portIdentifier,
string &nodeIdentifier,
string &portName);
73 string getNodeIdentifierForIndex(
const char *compositionIdentifier,
unsigned long nodeIndex);
74 unsigned long getNodeIndexForIdentifier(
const string &compositionIdentifier,
const string &nodeIdentifier);
75 const NodeMetadata * getNodeMetadataForPort(
const string &compositionIdentifier,
const string &portIdentifier);
76 string getCompositionIdentifierForHash(
unsigned long compositionIdentifierHash);
77 void addNodeContext(
const char *compositionIdentifier,
unsigned long nodeIndex,
struct NodeContext *nodeContext);
78 void removeNodeContext(
const char *compositionIdentifier,
unsigned long nodeIndex);
79 void relocateNodeContext(
const char *compositionIdentifier,
unsigned long nodeIndex);
80 NodeContext * carryOverNodeContext(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
unsigned long nodeIndex);
83 static bool findCachedInfoForPort(
const map<
string, map<string, T> > &cachedInfoForPort,
const string &compositionIdentifier,
const string &portIdentifier,
typename map<string, T>::const_iterator &foundIter);
84 void addPortIdentifier(
const char *compositionIdentifier,
const string &portIdentifier,
void *data, dispatch_semaphore_t nodeSemaphore,
unsigned long nodeIndex,
unsigned long typeIndex);
85 void removePortIdentifier(
const char *compositionIdentifier,
const string &portIdentifier);
86 void relocatePortIdentifier(
const char *compositionIdentifier,
const string &portIdentifier);
87 void carryOverPortIdentifier(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
const string &portIdentifier,
unsigned long nodeIndex,
unsigned long typeIndex);
88 void carryOverPortIdentifiersForNode(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
const string &nodeIdentifier,
unsigned long nodeIndex,
const vector<string> &portIdentifiers,
const vector<unsigned long> typeIndexes);
89 void removeCarriedOverPortIdentifier(
const char *compositionIdentifier,
const string &oldPortIdentifier);
90 void carryOverPortData(
const char *oldCompositionIdentifier,
const char *newCompositionIdentifier,
const string &oldPortIdentifier,
const string &newPortIdentifier,
PortContext *newPortContext);
101 typedef const char *vuoTopLevelCompositionIdentifierType;
102 vuoTopLevelCompositionIdentifierType vuoTopLevelCompositionIdentifier;
111 void addNodeMetadata(
const char *compositionIdentifier,
const char *nodeIdentifier,
112 NodeContext *(*compositionCreateContextForNode)(
unsigned long),
113 void (*compositionSetPortValue)(
VuoCompositionState *,
const char *,
const char *,
bool,
bool,
bool,
bool,
bool),
116 void (*compositionReleasePortData)(
void *,
unsigned long));
117 void addPortMetadata(
const char *compositionIdentifier,
const char *portIdentifier,
const char *portName,
118 unsigned long typeIndex,
const char *initialValue);
121 void *
getDataForPort(
const char *compositionIdentifier,
const char *portIdentifier);
123 unsigned long getNodeIndexForPort(
const char *compositionIdentifier,
const char *portIdentifier);
124 unsigned long getTypeIndexForPort(
const char *compositionIdentifier,
const char *portIdentifier);
138 NodeContext *(*compositionCreateContextForNode)(
unsigned long),
139 void (*compositionSetPortValue)(
VuoCompositionState *,
const char *,
const char *,
bool,
bool,
bool,
bool,
bool),
142 void (*compositionReleasePortData)(
void *,
unsigned long));
144 unsigned long typeIndex,
const char *initialValue);