diff options
Diffstat (limited to 'filemetadata.cpp')
| -rw-r--r-- | filemetadata.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
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<KeyValueStore> data, Ref<KeyValueStore> cache, + const std::function<void(size_t, size_t)>& progress) +{ + DatabaseProgressCallbackContext cb; + cb.func = progress; + BNGetSnapshotData(GetObject(), data->GetObject(), cache->GetObject(), &cb, DatabaseProgressCallback); +} + + +void FileMetadata::ApplySnapshotData(BinaryView* file, Ref<KeyValueStore> data, Ref<KeyValueStore> cache, + const std::function<void(size_t, size_t)>& progress, bool openForConfiguration, bool restoreRawView) +{ + DatabaseProgressCallbackContext cb; + cb.func = progress; + BNApplySnapshotData(GetObject(), file->GetObject(), data->GetObject(), cache->GetObject(), &cb, DatabaseProgressCallback, openForConfiguration, restoreRawView); +} + + +Ref<Database> 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<UndoEntry> FileMetadata::GetUndoEntries() } +void FileMetadata::ClearUndoEntries() +{ + BNClearUndoEntries(m_object); +} + + bool FileMetadata::OpenProject() { return BNOpenProject(m_object); |
