summaryrefslogtreecommitdiff
path: root/filemetadata.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2015-04-27 02:15:16 -0400
committerRusty Wagner <rusty@vector35.com>2015-04-27 02:15:16 -0400
commit190c491d4f6ea4cdb089f5efee15e4fcf65715d3 (patch)
tree22a9c96c5d427eb48b3437c5f92d923a89048222 /filemetadata.cpp
parentf576bc88bdecba3d634482777142a2d7c84600c6 (diff)
Initial database save/open, just file contents right now
Diffstat (limited to 'filemetadata.cpp')
-rw-r--r--filemetadata.cpp38
1 files changed, 36 insertions, 2 deletions
diff --git a/filemetadata.cpp b/filemetadata.cpp
index 5775852a..bfa7c97a 100644
--- a/filemetadata.cpp
+++ b/filemetadata.cpp
@@ -70,7 +70,7 @@ char* UndoAction::SerializeCallback(void* ctxt)
}
-UndoAction::UndoAction(const string& name): m_name(name)
+UndoAction::UndoAction(const string& name, BNActionType action): m_typeName(name), m_actionType(action)
{
}
@@ -78,6 +78,7 @@ UndoAction::UndoAction(const string& name): m_name(name)
BNUndoAction UndoAction::GetCallbacks()
{
BNUndoAction action;
+ action.type = m_actionType;
action.context = this;
action.undo = UndoCallback;
action.redo = RedoCallback;
@@ -89,7 +90,7 @@ BNUndoAction UndoAction::GetCallbacks()
void UndoAction::Add(BNBinaryView* view)
{
BNUndoAction action = GetCallbacks();
- BNAddUndoAction(view, GetName().c_str(), &action);
+ BNAddUndoAction(view, m_typeName.c_str(), &action);
}
@@ -184,6 +185,12 @@ bool FileMetadata::IsModified() const
}
+bool FileMetadata::IsAnalysisChanged() const
+{
+ return BNIsAnalysisChanged(m_file);
+}
+
+
void FileMetadata::MarkFileModified()
{
BNMarkFileModified(m_file);
@@ -196,6 +203,33 @@ void FileMetadata::MarkFileSaved()
}
+bool FileMetadata::IsBackedByDatabase() const
+{
+ return BNIsBackedByDatabase(m_file);
+}
+
+
+bool FileMetadata::CreateDatabase(const string& name, BinaryView* data)
+{
+ return BNCreateDatabase(data->GetViewObject(), name.c_str());
+}
+
+
+Ref<BinaryView> FileMetadata::OpenExistingDatabase(const string& path)
+{
+ BNBinaryView* data = BNOpenExistingDatabase(m_file, path.c_str());
+ if (!data)
+ return nullptr;
+ return new BinaryView(data);
+}
+
+
+bool FileMetadata::SaveAutoSnapshot(BinaryView* data)
+{
+ return BNSaveAutoSnapshot(data->GetViewObject());
+}
+
+
void FileMetadata::BeginUndoActions()
{
BNBeginUndoActions(m_file);