23 VuoCompilerTriggerDescription::VuoCompilerTriggerDescription(
void)
25 nodeIndex = ULONG_MAX - 1;
26 portContextIndex = -1;
29 minWorkerThreadsNeeded = -1;
30 minWorkerThreadsNeeded = -1;
47 string dataTypeStr = (dataType ? dataType->
getModuleKey() :
"event");
48 int minWorkerThreadsNeeded, maxWorkerThreadsNeeded;
50 int chainCount = (int)graph->
getChains()[trigger].size();
54 json_object_object_add(js,
"nodeIndex", json_object_new_int64(nodeIndex));
55 json_object_object_add(js,
"nodeIdentifier", json_object_new_string(nodeIdentifier.c_str()));
56 json_object_object_add(js,
"nodeClassName", json_object_new_string(nodeClassName.c_str()));
57 json_object_object_add(js,
"portName", json_object_new_string(portName.c_str()));
58 json_object_object_add(js,
"portContextIndex", json_object_new_int(portContextIndex));
59 json_object_object_add(js,
"eventThrottling", json_object_new_string(eventThrottlingStr.c_str()));
60 json_object_object_add(js,
"dataType", json_object_new_string(dataTypeStr.c_str()));
61 json_object_object_add(js,
"minWorkerThreadsNeeded", json_object_new_int(minWorkerThreadsNeeded));
62 json_object_object_add(js,
"maxWorkerThreadsNeeded", json_object_new_int(maxWorkerThreadsNeeded));
63 json_object_object_add(js,
"chainCount", json_object_new_int(chainCount));
73 vector<VuoCompilerTriggerDescription *> triggers;
75 int itemCount = json_object_array_length(js);
76 for (
int i = 0; i < itemCount; ++i)
78 json_object *itemJs = json_object_array_get_idx(js, i);
83 if (json_object_object_get_ex(itemJs,
"nodeIndex", &o))
84 trigger->nodeIndex = json_object_get_int64(o);
85 if (json_object_object_get_ex(itemJs,
"nodeIdentifier", &o))
86 trigger->nodeIdentifier = json_object_get_string(o);
87 if (json_object_object_get_ex(itemJs,
"nodeClassName", &o))
88 trigger->nodeClassName = json_object_get_string(o);
89 if (json_object_object_get_ex(itemJs,
"portName", &o))
90 trigger->portName = json_object_get_string(o);
91 if (json_object_object_get_ex(itemJs,
"portContextIndex", &o))
92 trigger->portContextIndex = json_object_get_int(o);
93 if (json_object_object_get_ex(itemJs,
"eventThrottling", &o))
95 string eventThrottlingStr = json_object_get_string(o);
98 if (json_object_object_get_ex(itemJs,
"dataType", &o))
100 string dataTypeStr = json_object_get_string(o);
101 trigger->dataType = (dataTypeStr ==
"event" ? NULL :
new VuoType(dataTypeStr));
103 if (json_object_object_get_ex(itemJs,
"minWorkerThreadsNeeded", &o))
104 trigger->minWorkerThreadsNeeded = json_object_get_int(o);
105 if (json_object_object_get_ex(itemJs,
"maxWorkerThreadsNeeded", &o))
106 trigger->maxWorkerThreadsNeeded = json_object_get_int(o);
107 if (json_object_object_get_ex(itemJs,
"chainCount", &o))
108 trigger->chainCount = json_object_get_int(o);
109 if (json_object_object_get_ex(itemJs,
"subcompositionNodeClassName", &o))
110 trigger->subcompositionNodeClassName = json_object_get_string(o);
111 if (json_object_object_get_ex(itemJs,
"subcompositionNodeIdentifier", &o))
112 trigger->subcompositionNodeIdentifier = json_object_get_string(o);
114 triggers.push_back(trigger);
127 string dataTypeStr = (dataType ? dataType->
getModuleKey() :
"event");
128 string subcompositionNodeClassNameStr = (subcompositionNodeClassName.empty() ?
130 string subcompositionNodeIdentifierStr = (subcompositionNodeIdentifier.empty() ?
136 json_object_object_add(js,
"nodeIndex", json_object_new_int64(nodeIndex));
137 json_object_object_add(js,
"nodeIdentifier", json_object_new_string(nodeIdentifier.c_str()));
138 json_object_object_add(js,
"nodeClassName", json_object_new_string(nodeClassName.c_str()));
139 json_object_object_add(js,
"portName", json_object_new_string(portName.c_str()));
140 json_object_object_add(js,
"portContextIndex", json_object_new_int(portContextIndex));
141 json_object_object_add(js,
"eventThrottling", json_object_new_string(eventThrottlingStr.c_str()));
142 json_object_object_add(js,
"dataType", json_object_new_string(dataTypeStr.c_str()));
143 json_object_object_add(js,
"minWorkerThreadsNeeded", json_object_new_int(minWorkerThreadsNeeded));
144 json_object_object_add(js,
"maxWorkerThreadsNeeded", json_object_new_int(maxWorkerThreadsNeeded));
145 json_object_object_add(js,
"chainCount", json_object_new_int(chainCount));
146 json_object_object_add(js,
"subcompositionNodeClassName", json_object_new_string(subcompositionNodeClassNameStr.c_str()));
147 json_object_object_add(js,
"subcompositionNodeIdentifier", json_object_new_string(subcompositionNodeIdentifierStr.c_str()));
165 return nodeIdentifier;
173 return nodeClassName;
189 return portContextIndex;
197 return eventThrottling;
213 this->dataType = dataType;
224 minThreadsNeeded = this->minWorkerThreadsNeeded;
225 maxThreadsNeeded = this->maxWorkerThreadsNeeded;
241 return subcompositionNodeClassName;
249 return subcompositionNodeIdentifier;