! \ingroup workflow */
| 10103 | \ingroup workflow |
| 10104 | */ |
| 10105 | class Activity : public CoreRefCountObject<BNActivity, BNNewActivityReference, BNFreeActivity> |
| 10106 | { |
| 10107 | protected: |
| 10108 | std::function<void(Ref<AnalysisContext> analysisContext)> m_action; |
| 10109 | std::function<bool(Ref<Activity>, Ref<AnalysisContext>)> m_eligibility; |
| 10110 | |
| 10111 | static void RunAction(void* ctxt, BNAnalysisContext* analysisContext); |
| 10112 | static bool CheckEligibility(void* ctxt, BNActivity* activity, BNAnalysisContext* analysisContext); |
| 10113 | |
| 10114 | public: |
| 10115 | /*! |
| 10116 | \param configuration a JSON representation of the activity configuration |
| 10117 | \param action Workflow action, a function taking a Ref<AnalysisContext> as an argument. |
| 10118 | \param eligibility A function that determines whether the activity is eligible to run |
| 10119 | */ |
| 10120 | Activity(const std::string& configuration, const std::function<void(Ref<AnalysisContext>)>& action, |
| 10121 | const std::function<bool(Ref<Activity>, Ref<AnalysisContext>)>& eligibility = nullptr); |
| 10122 | Activity(BNActivity* activity); |
| 10123 | virtual ~Activity(); |
| 10124 | |
| 10125 | /*! Get the Activity name |
| 10126 | |
| 10127 | \return Activity name |
| 10128 | */ |
| 10129 | std::string GetName() const; |
| 10130 | }; |
| 10131 | |
| 10132 | class WorkflowMachine |
| 10133 | { |
no outgoing calls
no test coverage detected