summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorXusheng <xusheng@vector35.com>2020-11-03 16:36:38 +0800
committerXusheng <xusheng@vector35.com>2020-11-13 22:24:28 +0800
commitcb2b7ad0f73751277d88a28e93c1ec99531836b2 (patch)
treeb85bc574e7b79ac3e9ef7e0e7c889002c233e3f5 /binaryninjaapi.h
parent46a7e1cf763380f70c066fe456615ba4de2d13c0 (diff)
add callback for BinaryView finalization and initial analysis completion
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index fb5e77fc..6f39b8d5 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1803,6 +1803,11 @@ __attribute__ ((format (printf, 1, 2)))
class BinaryViewType: public StaticCoreRefCountObject<BNBinaryViewType>
{
+ struct BinaryViewEvent
+ {
+ std::function<void(BinaryView*)> action;
+ };
+
protected:
std::string m_nameForRegister, m_longNameForRegister;
@@ -1841,6 +1846,11 @@ __attribute__ ((format (printf, 1, 2)))
virtual BinaryView* Parse(BinaryView* data) = 0;
virtual bool IsTypeValidForData(BinaryView* data) = 0;
virtual Ref<Settings> GetLoadSettingsForData(BinaryView* data) = 0;
+
+ static void RegisterBinaryViewFinalizationEvent(const std::function<void(BinaryView* view)>& callback);
+ static void RegisterBinaryViewInitialAnalysisCompletionEvent(const std::function<void(BinaryView* view)>& callback);
+
+ static void BinaryViewEventCallback(void* ctxt, BNBinaryView* view);
};
class CoreBinaryViewType: public BinaryViewType