diff options
| author | Brian Potchik <brian@vector35.com> | 2023-07-29 01:59:56 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2023-07-29 01:59:56 -0400 |
| commit | adb819496e5e447b7acf5336ffe5d0a18a03c448 (patch) | |
| tree | bf3619d77070e8c689ebc3ff6cc4169172dfb845 /workflow.cpp | |
| parent | 8206f95a6a59a21f156abb4e6ec8582797f8620b (diff) | |
Core workflows feature update.
Diffstat (limited to 'workflow.cpp')
| -rw-r--r-- | workflow.cpp | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/workflow.cpp b/workflow.cpp index a779b81f..3dd771a4 100644 --- a/workflow.cpp +++ b/workflow.cpp @@ -133,9 +133,9 @@ Ref<Workflow> Workflow::Instance(const string& name) } -bool Workflow::RegisterWorkflow(Ref<Workflow> workflow, const string& description) +bool Workflow::RegisterWorkflow(Ref<Workflow> workflow, const string& configuration) { - return BNRegisterWorkflow(workflow->m_object, description.c_str()); + return BNRegisterWorkflow(workflow->m_object, configuration.c_str()); } @@ -145,30 +145,32 @@ Ref<Workflow> Workflow::Clone(const string& name, const string& activity) } -bool Workflow::RegisterActivity(Ref<Activity> activity, const string& description) +Ref<Activity> Workflow::RegisterActivity(const string& configuration, const function<void(Ref<AnalysisContext>)>& action, const vector<string>& subactivities) { - return RegisterActivity(activity, {}, description); + return RegisterActivity(new Activity(configuration, action), subactivities); } -bool Workflow::RegisterActivity(Ref<Activity> activity, const vector<string>& subactivities, const string& description) +Ref<Activity> Workflow::RegisterActivity(Ref<Activity> activity, const vector<string>& subactivities) { - activity->AddRefForRegistration(); // TODO - char** buffer = new char*[subactivities.size()]; if (!buffer) - return false; + return nullptr; + activity->AddRefForRegistration(); // TODO for (size_t i = 0; i < subactivities.size(); i++) buffer[i] = BNAllocString(subactivities[i].c_str()); - bool result = BNWorkflowRegisterActivity( - m_object, activity->GetObject(), (const char**)buffer, subactivities.size(), description.c_str()); + BNActivity* activityObject = BNWorkflowRegisterActivity(m_object, activity->GetObject(), (const char**)buffer, subactivities.size()); for (size_t i = 0; i < subactivities.size(); i++) BNFreeString(buffer[i]); delete[] buffer; - return result; + + if (!activityObject) + return nullptr; + + return new Activity(BNNewActivityReference(activityObject)); } @@ -269,7 +271,7 @@ bool Workflow::Clear() } -bool Workflow::Insert(const string& activity, const std::string& newActivity) +bool Workflow::Insert(const string& activity, const string& newActivity) { char* buffer[1]; buffer[0] = BNAllocString(newActivity.c_str()); @@ -319,13 +321,7 @@ Ref<FlowGraph> Workflow::GetGraph(const string& activity, bool sequential) } -void Workflow::ShowReport(const std::string& name) +void Workflow::ShowReport(const string& name) { BNWorkflowShowReport(m_object, name.c_str()); } - - -// bool Workflow::Run(const string& activity, Ref<AnalysisContext> analysisContext) -// { - -// } |
