Vector35 / Vector35/binaryninja-api

Callback on Database Saved (for headless clients)

Open
#8,187 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Component: Core Effort: Low Impact: Medium
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

What is the feature you'd like to have?
I want the equivalent of UIContextNotification::OnBeforeSaveFile/OnAfterSaveFile, but for headless non-UI contexts.

Is your feature request related to a problem?
There are many things this could enable, but right now I want to make views add dependency files to their project files when you save a database: #8169, and also for the shared cache #8337.

Are any alternative solutions acceptable?
All places that save a file could have to call a function to trigger these callbacks? That is not very likely to work. I could implement the functionality I want in a UI plugin, though that will break headless support and also would be very janky.

Additional Information:
There is a major issue with this and Projects: Vector35/binaryninja#1521

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing UIContextNotification::OnBeforeSaveFile and OnAfterSaveFile APIs, then review issues #8169, #8337, and #1521 for the requested view, shared-cache, and Projects interactions. Done should provide an agreed callback mechanism for database saves in headless non-UI contexts without requiring every save site to call it manually.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.