summaryrefslogtreecommitdiff
path: root/binaryviewtype.cpp
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 /binaryviewtype.cpp
parent46a7e1cf763380f70c066fe456615ba4de2d13c0 (diff)
add callback for BinaryView finalization and initial analysis completion
Diffstat (limited to 'binaryviewtype.cpp')
-rw-r--r--binaryviewtype.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/binaryviewtype.cpp b/binaryviewtype.cpp
index 8b0f8007..6691b820 100644
--- a/binaryviewtype.cpp
+++ b/binaryviewtype.cpp
@@ -219,6 +219,31 @@ bool BinaryViewType::IsDeprecated()
return BNIsBinaryViewTypeDeprecated(m_object);
}
+
+void BinaryViewType::RegisterBinaryViewFinalizationEvent(const function<void(BinaryView* view)>& callback)
+{
+ BinaryViewEvent* event = new BinaryViewEvent;
+ event->action = callback;
+ BNRegisterBinaryViewEvent(BinaryViewFinalizationEvent, BinaryViewEventCallback, event);
+}
+
+
+void BinaryViewType::RegisterBinaryViewInitialAnalysisCompletionEvent(const function<void(BinaryView* view)>& callback)
+{
+ BinaryViewEvent* event = new BinaryViewEvent;
+ event->action = callback;
+ BNRegisterBinaryViewEvent(BinaryViewInitialAnalysisCompletionEvent, BinaryViewEventCallback, event);
+}
+
+
+void BinaryViewType::BinaryViewEventCallback(void* ctxt, BNBinaryView* view)
+{
+ BinaryViewEvent* event = (BinaryViewEvent*)ctxt;
+ Ref<BinaryView> viewObject = new BinaryView(BNNewViewReference(view));
+ event->action(viewObject);
+}
+
+
CoreBinaryViewType::CoreBinaryViewType(BNBinaryViewType* type): BinaryViewType(type)
{
}