From ce08fff22e4bed3d977cfd662ed2a6d8caa82997 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Mon, 14 Sep 2020 17:15:37 -0400 Subject: Database api Co-Authored-By: Josh Ferrell --- filemetadata.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'filemetadata.cpp') diff --git a/filemetadata.cpp b/filemetadata.cpp index 00711b57..4ca10e64 100644 --- a/filemetadata.cpp +++ b/filemetadata.cpp @@ -223,6 +223,33 @@ bool FileMetadata::SaveAutoSnapshot(BinaryView* data, } +void FileMetadata::GetSnapshotData(Ref data, Ref cache, + const std::function& progress) +{ + DatabaseProgressCallbackContext cb; + cb.func = progress; + BNGetSnapshotData(GetObject(), data->GetObject(), cache->GetObject(), &cb, DatabaseProgressCallback); +} + + +void FileMetadata::ApplySnapshotData(BinaryView* file, Ref data, Ref cache, + const std::function& progress, bool openForConfiguration, bool restoreRawView) +{ + DatabaseProgressCallbackContext cb; + cb.func = progress; + BNApplySnapshotData(GetObject(), file->GetObject(), data->GetObject(), cache->GetObject(), &cb, DatabaseProgressCallback, openForConfiguration, restoreRawView); +} + + +Ref FileMetadata::GetDatabase() +{ + BNDatabase* db = BNGetFileMetadataDatabase(m_object); + if (db == nullptr) + return nullptr; + return new Database(db); +} + + bool FileMetadata::Rebase(BinaryView* data, uint64_t address) { return BNRebase(data->GetObject(), address); @@ -320,6 +347,12 @@ vector FileMetadata::GetUndoEntries() } +void FileMetadata::ClearUndoEntries() +{ + BNClearUndoEntries(m_object); +} + + bool FileMetadata::OpenProject() { return BNOpenProject(m_object); -- cgit v1.3.1