summaryrefslogtreecommitdiff
path: root/filemetadata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filemetadata.cpp')
-rw-r--r--filemetadata.cpp40
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);
+}