diff options
| author | Rusty Wagner <rusty@vector35.com> | 2015-04-27 02:15:16 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2015-04-27 02:15:16 -0400 |
| commit | 190c491d4f6ea4cdb089f5efee15e4fcf65715d3 (patch) | |
| tree | 22a9c96c5d427eb48b3437c5f92d923a89048222 /filemetadata.cpp | |
| parent | f576bc88bdecba3d634482777142a2d7c84600c6 (diff) | |
Initial database save/open, just file contents right now
Diffstat (limited to 'filemetadata.cpp')
| -rw-r--r-- | filemetadata.cpp | 38 |
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); |
