diff options
| author | Brian Potchik <brian@vector35.com> | 2021-08-13 18:48:51 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2021-08-13 18:48:51 -0400 |
| commit | 801b4138784a45643a7201b7e54105ea5eb3b6c4 (patch) | |
| tree | 02916c8e665e7dbc16958b55abe08ff48372abf2 /activity.cpp | |
| parent | ac70b362bb4f15b1d1eeced7a44a222f663e695f (diff) | |
Workflows early preview.
Diffstat (limited to 'activity.cpp')
| -rw-r--r-- | activity.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/activity.cpp b/activity.cpp new file mode 100644 index 00000000..31584343 --- /dev/null +++ b/activity.cpp @@ -0,0 +1,41 @@ +#include "binaryninjaapi.h" +#include <string> + +using namespace BinaryNinja; +using namespace std; + + +Activity::Activity(const string& name, const std::function<void(Ref<AnalysisContext> analysisContext)>& action): m_action(action) +{ + //LogError("API-Side Activity Constructed!"); + m_object = BNCreateActivity(name.c_str(), this, Run); +} + + +Activity::Activity(BNActivity* activity) +{ + m_object = BNNewActivityReference(activity); +} + + +Activity::~Activity() +{ + //LogError("API-Side Activity Destructed!"); +} + + +void Activity::Run(void* ctxt, BNAnalysisContext* analysisContext) +{ + Activity* activity = (Activity*)ctxt; + Ref<AnalysisContext> ac = new AnalysisContext(BNNewAnalysisContextReference(analysisContext)); + activity->m_action(ac); +} + + +string Activity::GetName() const +{ + char* name = BNActivityGetName(m_object); + string result = name; + BNFreeString(name); + return result; +} |
