summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2025-01-22 10:48:44 -0500
committerBrian Potchik <brian@vector35.com>2025-01-22 10:48:44 -0500
commit8ba7106948272275534309d10a5a444f26df01ee (patch)
tree557da11f907b4f05d024c0e5d63a5580bd124130 /binaryninjaapi.h
parentf1eccb70c2f23fc6665733d8c911b21eb36cbcf5 (diff)
Support eligibility callbacks through the API for Workflow actions.
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 2a2e5e9b..f8d7504a 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -9943,15 +9943,19 @@ namespace BinaryNinja {
{
protected:
std::function<void(Ref<AnalysisContext> analysisContext)> m_action;
+ std::function<bool(Ref<Activity>, Ref<AnalysisContext>)> m_eligibility;
- static void Run(void* ctxt, BNAnalysisContext* analysisContext);
+ static void RunAction(void* ctxt, BNAnalysisContext* analysisContext);
+ static bool CheckEligibility(void* ctxt, BNActivity* activity, BNAnalysisContext* analysisContext);
public:
/*!
\param configuration a JSON representation of the activity configuration
\param action Workflow action, a function taking a Ref<AnalysisContext> as an argument.
+ \param eligibility A function that determines whether the activity is eligible to run
*/
- Activity(const std::string& configuration, const std::function<void(Ref<AnalysisContext>)>& action);
+ Activity(const std::string& configuration, const std::function<void(Ref<AnalysisContext>)>& action,
+ const std::function<bool(Ref<Activity>, Ref<AnalysisContext>)>& eligibility = nullptr);
Activity(BNActivity* activity);
virtual ~Activity();