int main(int argc, const char * argv[]) { ocrConfig_t ocrConfig; ocrParseArgs(argc, argv, &ocrConfig); ocrInit(&ocrConfig); ocrGuid_t terminateEdtGuid; ocrGuid_t terminateEdtTemplateGuid; ocrEdtTemplateCreate(&terminateEdtTemplateGuid, terminateEdt, 0 /*paramc*/, 1 /*depc*/); ocrEdtCreate(&terminateEdtGuid, terminateEdtTemplateGuid, EDT_PARAM_DEF, /*paramv=*/NULL, EDT_PARAM_DEF, /*depv=*/NULL, /*properties=*/0, NULL_GUID, /*outEvent=*/NULL); ocrGuid_t outputEventGuid; ocrGuid_t rootEdtGuid; ocrGuid_t rootEdtTemplateGuid; ocrEdtTemplateCreate(&rootEdtTemplateGuid, rootEdt, 0 /*paramc*/, 0 /*depc*/); ocrEdtCreate(&rootEdtGuid, rootEdtTemplateGuid, EDT_PARAM_DEF, /*paramv=*/NULL, EDT_PARAM_DEF, /*depv=*/NULL, /*properties=*/EDT_PROP_FINISH, NULL_GUID, /*outEvent=*/&outputEventGuid); // When output-event will be satisfied, the whole task sub-tree // spawned by rootEdt will be done, and shutdownEdt is called. ocrAddDependence(outputEventGuid, terminateEdtGuid, 0, DB_MODE_RO); ocrFinalize(); return 0; }
int main(int argc, const char * argv[]) { ocrConfig_t ocrConfig; ocrGuid_t legacyCtx; ocrParseArgs(argc, argv, &ocrConfig); ocrLegacyInit(&legacyCtx, &ocrConfig); ocrGuid_t rootEdtGuid; ocrGuid_t rootEdtTemplateGuid; ocrEdtTemplateCreate(&rootEdtTemplateGuid, rootEdt, 0 /*paramc*/, 0 /*depc*/); ocrEdtCreate(&rootEdtGuid, rootEdtTemplateGuid, EDT_PARAM_DEF, /*paramv=*/NULL, EDT_PARAM_DEF, /*depv=*/NULL, /*properties=*/0, NULL_HINT, /*outEvent=*/NULL); // This should wait for the EDT to finish ocrLegacyFinalize(legacyCtx, true); return 0; }