From adb819496e5e447b7acf5336ffe5d0a18a03c448 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Sat, 29 Jul 2023 01:59:56 -0400 Subject: Core workflows feature update. --- workflow.cpp | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) (limited to 'workflow.cpp') diff --git a/workflow.cpp b/workflow.cpp index a779b81f..3dd771a4 100644 --- a/workflow.cpp +++ b/workflow.cpp @@ -133,9 +133,9 @@ Ref Workflow::Instance(const string& name) } -bool Workflow::RegisterWorkflow(Ref workflow, const string& description) +bool Workflow::RegisterWorkflow(Ref 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::Clone(const string& name, const string& activity) } -bool Workflow::RegisterActivity(Ref activity, const string& description) +Ref Workflow::RegisterActivity(const string& configuration, const function)>& action, const vector& subactivities) { - return RegisterActivity(activity, {}, description); + return RegisterActivity(new Activity(configuration, action), subactivities); } -bool Workflow::RegisterActivity(Ref activity, const vector& subactivities, const string& description) +Ref Workflow::RegisterActivity(Ref activity, const vector& 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 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) -// { - -// } -- cgit v1.3.1