summaryrefslogtreecommitdiff
path: root/binaryview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'binaryview.cpp')
-rw-r--r--binaryview.cpp57
1 files changed, 53 insertions, 4 deletions
diff --git a/binaryview.cpp b/binaryview.cpp
index dc2212a6..5cec7b10 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -122,6 +122,39 @@ void BinaryDataNotification::DataMetadataUpdatedCallback(void* ctxt, BNBinaryVie
}
+void BinaryDataNotification::TagTypeUpdatedCallback(void* ctxt, BNBinaryView* object, BNTagType* tagType)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(object));
+ Ref<TagType> tagTypeRef = new TagType(BNNewTagTypeReference(tagType));
+ notify->OnTagTypeUpdated(view, tagTypeRef);
+}
+
+
+void BinaryDataNotification::TagAddedCallback(void* ctxt, BNBinaryView* object, BNTagReference* tagRef)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(object));
+ notify->OnTagAdded(view, TagReference(*tagRef));
+}
+
+
+void BinaryDataNotification::TagUpdatedCallback(void* ctxt, BNBinaryView* object, BNTagReference* tagRef)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(object));
+ notify->OnTagUpdated(view, TagReference(*tagRef));
+}
+
+
+void BinaryDataNotification::TagRemovedCallback(void* ctxt, BNBinaryView* object, BNTagReference* tagRef)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(object));
+ notify->OnTagRemoved(view, TagReference(*tagRef));
+}
+
+
void BinaryDataNotification::SymbolAddedCallback(void* ctxt, BNBinaryView* object, BNSymbol* symobj)
{
BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
@@ -197,6 +230,10 @@ BinaryDataNotification::BinaryDataNotification()
m_callbacks.dataVariableRemoved = DataVariableRemovedCallback;
m_callbacks.dataVariableUpdated = DataVariableUpdatedCallback;
m_callbacks.dataMetadataUpdated = DataMetadataUpdatedCallback;
+ m_callbacks.tagTypeUpdated = TagTypeUpdatedCallback;
+ m_callbacks.tagAdded = TagAddedCallback;
+ m_callbacks.tagUpdated = TagUpdatedCallback;
+ m_callbacks.tagRemoved = TagRemovedCallback;
m_callbacks.symbolAdded = SymbolAddedCallback;
m_callbacks.symbolUpdated = SymbolUpdatedCallback;
m_callbacks.symbolRemoved = SymbolRemovedCallback;
@@ -2047,15 +2084,15 @@ std::vector<Ref<TagType>> BinaryView::GetTagTypes()
}
-void BinaryView::AddTag(Ref<Tag> tag)
+void BinaryView::AddTag(Ref<Tag> tag, bool user)
{
- BNAddTag(m_object, tag->GetObject());
+ BNAddTag(m_object, tag->GetObject(), user);
}
-void BinaryView::RemoveTag(Ref<Tag> tag)
+void BinaryView::RemoveTag(Ref<Tag> tag, bool user)
{
- BNRemoveTag(m_object, tag->GetObject());
+ BNRemoveTag(m_object, tag->GetObject(), user);
}
@@ -2109,6 +2146,18 @@ std::vector<TagReference> BinaryView::GetTagReferencesOfType(Ref<TagType> tagTyp
}
+size_t BinaryView::GetAllTagReferencesOfTypeCount(Ref<TagType> tagType)
+{
+ return BNGetAllTagReferencesOfTypeCount(m_object, tagType->GetObject());
+}
+
+
+size_t BinaryView::GetTagReferencesOfTypeCount(Ref<TagType> tagType)
+{
+ return BNGetTagReferencesOfTypeCount(m_object, tagType->GetObject());
+}
+
+
std::vector<TagReference> BinaryView::GetDataTagReferences()
{
size_t count;