diff options
Diffstat (limited to 'filemetadata.cpp')
| -rw-r--r-- | filemetadata.cpp | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/filemetadata.cpp b/filemetadata.cpp index e9433b15..956205bb 100644 --- a/filemetadata.cpp +++ b/filemetadata.cpp @@ -163,18 +163,18 @@ bool FileMetadata::IsBackedByDatabase() const } -bool FileMetadata::CreateDatabase(const string& name, BinaryView* data, bool clean) +bool FileMetadata::CreateDatabase(const string& name, BinaryView* data, Ref<SaveSettings> settings) { - return BNCreateDatabase(data->GetObject(), name.c_str(), clean); + return BNCreateDatabase(data->GetObject(), name.c_str(), settings ? settings->GetObject() : nullptr); } bool FileMetadata::CreateDatabase(const string& name, BinaryView* data, - const function<void(size_t progress, size_t total)>& progressCallback, bool clean) + const function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) { DatabaseProgressCallbackContext cb; cb.func = progressCallback; - return BNCreateDatabaseWithProgress(data->GetObject(), name.c_str(), &cb, DatabaseProgressCallback, clean); + return BNCreateDatabaseWithProgress(data->GetObject(), name.c_str(), &cb, DatabaseProgressCallback, settings ? settings->GetObject() : nullptr); } @@ -208,18 +208,18 @@ Ref<BinaryView> FileMetadata::OpenDatabaseForConfiguration(const string& path) } -bool FileMetadata::SaveAutoSnapshot(BinaryView* data, bool clean) +bool FileMetadata::SaveAutoSnapshot(BinaryView* data, Ref<SaveSettings> settings) { - return BNSaveAutoSnapshot(data->GetObject(), clean); + return BNSaveAutoSnapshot(data->GetObject(), settings ? settings->GetObject() : nullptr); } bool FileMetadata::SaveAutoSnapshot(BinaryView* data, - const function<void(size_t progress, size_t total)>& progressCallback, bool clean) + const function<void(size_t progress, size_t total)>& progressCallback, Ref<SaveSettings> settings) { DatabaseProgressCallbackContext cb; cb.func = progressCallback; - return BNSaveAutoSnapshotWithProgress(data->GetObject(), &cb, DatabaseProgressCallback, clean); + return BNSaveAutoSnapshotWithProgress(data->GetObject(), &cb, DatabaseProgressCallback, settings ? settings->GetObject() : nullptr); } @@ -348,3 +348,27 @@ Ref<BinaryView> FileMetadata::GetViewOfType(const string& name) return nullptr; return new BinaryView(view); } + + +SaveSettings::SaveSettings() +{ + m_object = BNCreateSaveSettings(); +} + + +SaveSettings::SaveSettings(BNSaveSettings* settings) +{ + m_object = settings; +} + + +bool SaveSettings::IsOptionSet(BNSaveOption option) const +{ + return BNIsSaveSettingsOptionSet(m_object, option); +} + + +void SaveSettings::SetOption(BNSaveOption option, bool state) +{ + BNSetSaveSettingsOption(m_object, option, state); +} |
