Skip to content

Commit a92e6f3

Browse files
committed
Refactor Plugin Manager to support upcoming changes
1 parent e388c32 commit a92e6f3

File tree

5 files changed

+56
-56
lines changed

5 files changed

+56
-56
lines changed

binaryninjaapi.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18143,10 +18143,10 @@ namespace BinaryNinja {
1814318143
/*!
1814418144
\ingroup pluginmanager
1814518145
*/
18146-
class RepoPlugin : public CoreRefCountObject<BNRepoPlugin, BNNewPluginReference, BNFreePlugin>
18146+
class RepoPlugin : public CoreRefCountObject<BNPlugin, BNNewPluginReference, BNFreePlugin>
1814718147
{
1814818148
public:
18149-
RepoPlugin(BNRepoPlugin* plugin);
18149+
RepoPlugin(BNPlugin* plugin);
1815018150
PluginStatus GetPluginStatus() const;
1815118151
std::vector<std::string> GetApis() const;
1815218152
std::vector<std::string> GetInstallPlatforms() const;

binaryninjacore.h

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ extern "C"
255255
typedef struct BNMainThreadAction BNMainThreadAction;
256256
typedef struct BNBackgroundTask BNBackgroundTask;
257257
typedef struct BNRepository BNRepository;
258-
typedef struct BNRepoPlugin BNRepoPlugin;
258+
typedef struct BNPlugin BNPlugin;
259259
typedef struct BNComponent BNComponent;
260260
typedef struct BNSettings BNSettings;
261261
typedef struct BNMetadata BNMetadata;
@@ -7491,61 +7491,61 @@ extern "C"
74917491
BNType** outType, BNQualifiedName* outVarName, BNBinaryView* view, bool simplify);
74927492

74937493
// Plugin repository APIs
7494-
BINARYNINJACOREAPI char** BNPluginGetApis(BNRepoPlugin* p, size_t* count);
7495-
BINARYNINJACOREAPI const char* BNPluginGetAuthor(BNRepoPlugin* p);
7496-
BINARYNINJACOREAPI const char* BNPluginGetDescription(BNRepoPlugin* p);
7497-
BINARYNINJACOREAPI const char* BNPluginGetLicenseText(BNRepoPlugin* p);
7498-
BINARYNINJACOREAPI const char* BNPluginGetLongdescription(BNRepoPlugin* p);
7499-
BINARYNINJACOREAPI BNVersionInfo BNPluginGetMinimumVersionInfo(BNRepoPlugin* p);
7500-
BINARYNINJACOREAPI BNVersionInfo BNPluginGetMaximumVersionInfo(BNRepoPlugin* p);
7494+
BINARYNINJACOREAPI char** BNPluginGetApis(BNPlugin* p, size_t* count);
7495+
BINARYNINJACOREAPI const char* BNPluginGetAuthor(BNPlugin* p);
7496+
BINARYNINJACOREAPI const char* BNPluginGetDescription(BNPlugin* p);
7497+
BINARYNINJACOREAPI const char* BNPluginGetLicenseText(BNPlugin* p);
7498+
BINARYNINJACOREAPI const char* BNPluginGetLongdescription(BNPlugin* p);
7499+
BINARYNINJACOREAPI BNVersionInfo BNPluginGetMinimumVersionInfo(BNPlugin* p);
7500+
BINARYNINJACOREAPI BNVersionInfo BNPluginGetMaximumVersionInfo(BNPlugin* p);
75017501
BINARYNINJACOREAPI BNVersionInfo BNParseVersionString(const char* v);
75027502
BINARYNINJACOREAPI bool BNVersionLessThan(const BNVersionInfo smaller, const BNVersionInfo larger);
7503-
BINARYNINJACOREAPI const char* BNPluginGetName(BNRepoPlugin* p);
7504-
BINARYNINJACOREAPI const char* BNPluginGetProjectUrl(BNRepoPlugin* p);
7505-
BINARYNINJACOREAPI const char* BNPluginGetPackageUrl(BNRepoPlugin* p);
7506-
BINARYNINJACOREAPI const char* BNPluginGetAuthorUrl(BNRepoPlugin* p);
7507-
BINARYNINJACOREAPI const char* BNPluginGetVersion(BNRepoPlugin* p);
7508-
BINARYNINJACOREAPI const char* BNPluginGetCommit(BNRepoPlugin* p);
7509-
BINARYNINJACOREAPI const bool BNPluginGetViewOnly(BNRepoPlugin* p);
7503+
BINARYNINJACOREAPI const char* BNPluginGetName(BNPlugin* p);
7504+
BINARYNINJACOREAPI const char* BNPluginGetProjectUrl(BNPlugin* p);
7505+
BINARYNINJACOREAPI const char* BNPluginGetPackageUrl(BNPlugin* p);
7506+
BINARYNINJACOREAPI const char* BNPluginGetAuthorUrl(BNPlugin* p);
7507+
BINARYNINJACOREAPI const char* BNPluginGetVersion(BNPlugin* p);
7508+
BINARYNINJACOREAPI const char* BNPluginGetCommit(BNPlugin* p);
7509+
BINARYNINJACOREAPI const bool BNPluginGetViewOnly(BNPlugin* p);
75107510
BINARYNINJACOREAPI void BNFreePluginTypes(BNPluginType* r);
7511-
BINARYNINJACOREAPI BNRepoPlugin* BNNewPluginReference(BNRepoPlugin* r);
7512-
BINARYNINJACOREAPI void BNFreePlugin(BNRepoPlugin* plugin);
7513-
BINARYNINJACOREAPI const char* BNPluginGetPath(BNRepoPlugin* p);
7514-
BINARYNINJACOREAPI const char* BNPluginGetSubdir(BNRepoPlugin* p);
7515-
BINARYNINJACOREAPI const char* BNPluginGetDependencies(BNRepoPlugin* p);
7516-
BINARYNINJACOREAPI bool BNPluginIsInstalled(BNRepoPlugin* p);
7517-
BINARYNINJACOREAPI bool BNPluginIsEnabled(BNRepoPlugin* p);
7518-
BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus(BNRepoPlugin* p);
7519-
BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes(BNRepoPlugin* p, size_t* count);
7520-
BINARYNINJACOREAPI bool BNPluginEnable(BNRepoPlugin* p, bool force);
7521-
BINARYNINJACOREAPI bool BNPluginDisable(BNRepoPlugin* p);
7522-
BINARYNINJACOREAPI bool BNPluginInstall(BNRepoPlugin* p);
7523-
BINARYNINJACOREAPI bool BNPluginInstallDependencies(BNRepoPlugin* p);
7524-
BINARYNINJACOREAPI bool BNPluginUninstall(BNRepoPlugin* p);
7525-
BINARYNINJACOREAPI bool BNPluginUpdate(BNRepoPlugin* p);
7526-
BINARYNINJACOREAPI char** BNPluginGetPlatforms(BNRepoPlugin* p, size_t* count);
7511+
BINARYNINJACOREAPI BNPlugin* BNNewPluginReference(BNPlugin* r);
7512+
BINARYNINJACOREAPI void BNFreePlugin(BNPlugin* plugin);
7513+
BINARYNINJACOREAPI const char* BNPluginGetPath(BNPlugin* p);
7514+
BINARYNINJACOREAPI const char* BNPluginGetSubdir(BNPlugin* p);
7515+
BINARYNINJACOREAPI const char* BNPluginGetDependencies(BNPlugin* p);
7516+
BINARYNINJACOREAPI bool BNPluginIsInstalled(BNPlugin* p);
7517+
BINARYNINJACOREAPI bool BNPluginIsEnabled(BNPlugin* p);
7518+
BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus(BNPlugin* p);
7519+
BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes(BNPlugin* p, size_t* count);
7520+
BINARYNINJACOREAPI bool BNPluginEnable(BNPlugin* p, bool force);
7521+
BINARYNINJACOREAPI bool BNPluginDisable(BNPlugin* p);
7522+
BINARYNINJACOREAPI bool BNPluginInstall(BNPlugin* p);
7523+
BINARYNINJACOREAPI bool BNPluginInstallDependencies(BNPlugin* p);
7524+
BINARYNINJACOREAPI bool BNPluginUninstall(BNPlugin* p);
7525+
BINARYNINJACOREAPI bool BNPluginUpdate(BNPlugin* p);
7526+
BINARYNINJACOREAPI char** BNPluginGetPlatforms(BNPlugin* p, size_t* count);
75277527
BINARYNINJACOREAPI void BNFreePluginPlatforms(char** platforms, size_t count);
7528-
BINARYNINJACOREAPI const char* BNPluginGetRepository(BNRepoPlugin* p);
7529-
BINARYNINJACOREAPI bool BNPluginIsBeingDeleted(BNRepoPlugin* p);
7530-
BINARYNINJACOREAPI bool BNPluginIsBeingUpdated(BNRepoPlugin* p);
7531-
BINARYNINJACOREAPI bool BNPluginIsRunning(BNRepoPlugin* p);
7532-
BINARYNINJACOREAPI bool BNPluginIsUpdatePending(BNRepoPlugin* p);
7533-
BINARYNINJACOREAPI bool BNPluginIsDisablePending(BNRepoPlugin* p);
7534-
BINARYNINJACOREAPI bool BNPluginIsDeletePending(BNRepoPlugin* p);
7535-
BINARYNINJACOREAPI bool BNPluginIsUpdateAvailable(BNRepoPlugin* p);
7536-
BINARYNINJACOREAPI bool BNPluginAreDependenciesBeingInstalled(BNRepoPlugin* p);
7537-
7538-
BINARYNINJACOREAPI char* BNPluginGetProjectData(BNRepoPlugin* p);
7539-
BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate(BNRepoPlugin* p);
7528+
BINARYNINJACOREAPI const char* BNPluginGetRepository(BNPlugin* p);
7529+
BINARYNINJACOREAPI bool BNPluginIsBeingDeleted(BNPlugin* p);
7530+
BINARYNINJACOREAPI bool BNPluginIsBeingUpdated(BNPlugin* p);
7531+
BINARYNINJACOREAPI bool BNPluginIsRunning(BNPlugin* p);
7532+
BINARYNINJACOREAPI bool BNPluginIsUpdatePending(BNPlugin* p);
7533+
BINARYNINJACOREAPI bool BNPluginIsDisablePending(BNPlugin* p);
7534+
BINARYNINJACOREAPI bool BNPluginIsDeletePending(BNPlugin* p);
7535+
BINARYNINJACOREAPI bool BNPluginIsUpdateAvailable(BNPlugin* p);
7536+
BINARYNINJACOREAPI bool BNPluginAreDependenciesBeingInstalled(BNPlugin* p);
7537+
7538+
BINARYNINJACOREAPI char* BNPluginGetProjectData(BNPlugin* p);
7539+
BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate(BNPlugin* p);
75407540

75417541
BINARYNINJACOREAPI BNRepository* BNNewRepositoryReference(BNRepository* r);
75427542
BINARYNINJACOREAPI void BNFreeRepository(BNRepository* r);
75437543
BINARYNINJACOREAPI char* BNRepositoryGetUrl(BNRepository* r);
75447544
BINARYNINJACOREAPI char* BNRepositoryGetRepoPath(BNRepository* r);
7545-
BINARYNINJACOREAPI BNRepoPlugin** BNRepositoryGetPlugins(BNRepository* r, size_t* count);
7546-
BINARYNINJACOREAPI void BNFreeRepositoryPluginList(BNRepoPlugin** r);
7545+
BINARYNINJACOREAPI BNPlugin** BNRepositoryGetPlugins(BNRepository* r, size_t* count);
7546+
BINARYNINJACOREAPI void BNFreeRepositoryPluginList(BNPlugin** r);
75477547
BINARYNINJACOREAPI void BNRepositoryFreePluginDirectoryList(char** list, size_t count);
7548-
BINARYNINJACOREAPI BNRepoPlugin* BNRepositoryGetPluginByPath(BNRepository* r, const char* pluginPath);
7548+
BINARYNINJACOREAPI BNPlugin* BNRepositoryGetPluginByPath(BNRepository* r, const char* pluginPath);
75497549
BINARYNINJACOREAPI const char* BNRepositoryGetPluginsPath(BNRepository* r);
75507550

75517551
BINARYNINJACOREAPI bool BNRepositoryManagerCheckForUpdates();

pluginmanager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ using namespace std;
1212
return result; \
1313
} while (0)
1414

15-
RepoPlugin::RepoPlugin(BNRepoPlugin* plugin)
15+
RepoPlugin::RepoPlugin(BNPlugin* plugin)
1616
{
1717
m_object = plugin;
1818
}
@@ -291,7 +291,7 @@ vector<Ref<RepoPlugin>> Repository::GetPlugins() const
291291
{
292292
vector<Ref<RepoPlugin>> plugins;
293293
size_t count = 0;
294-
BNRepoPlugin** pluginsPtr = BNRepositoryGetPlugins(m_object, &count);
294+
BNPlugin** pluginsPtr = BNRepositoryGetPlugins(m_object, &count);
295295
plugins.reserve(count);
296296
for (size_t i = 0; i < count; i++)
297297
plugins.push_back(new RepoPlugin(BNNewPluginReference(pluginsPtr[i])));

python/pluginmanager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class RepoPlugin:
3434
``RepoPlugin`` is mostly read-only, however you can install/uninstall enable/disable plugins. RepoPlugins are
3535
created by parsing the plugins.json in a plugin repository.
3636
"""
37-
def __init__(self, handle: core.BNRepoPluginHandle):
37+
def __init__(self, handle: core.BNPluginHandle):
3838
self.handle = handle
3939

4040
def __del__(self):

rust/src/repository/plugin.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
1111

1212
#[repr(transparent)]
1313
pub struct RepositoryPlugin {
14-
handle: NonNull<BNRepoPlugin>,
14+
handle: NonNull<BNPlugin>,
1515
}
1616

1717
impl RepositoryPlugin {
18-
pub(crate) unsafe fn from_raw(handle: NonNull<BNRepoPlugin>) -> Self {
18+
pub(crate) unsafe fn from_raw(handle: NonNull<BNPlugin>) -> Self {
1919
Self { handle }
2020
}
2121

22-
pub(crate) unsafe fn ref_from_raw(handle: NonNull<BNRepoPlugin>) -> Ref<Self> {
22+
pub(crate) unsafe fn ref_from_raw(handle: NonNull<BNPlugin>) -> Ref<Self> {
2323
Ref::new(Self { handle })
2424
}
2525

@@ -33,7 +33,7 @@ impl RepositoryPlugin {
3333

3434
/// String of the plugin author
3535
pub fn author(&self) -> String {
36-
let result = unsafe { BNPluginGetAuthor(self.handle.as_ptr()) };
36+
let result = unsafe { BNPluginGetAuthorUrl(self.handle.as_ptr()) };
3737
assert!(!result.is_null());
3838
unsafe { BnString::into_string(result as *mut c_char) }
3939
}
@@ -287,7 +287,7 @@ unsafe impl RefCountable for RepositoryPlugin {
287287
}
288288

289289
impl CoreArrayProvider for RepositoryPlugin {
290-
type Raw = *mut BNRepoPlugin;
290+
type Raw = *mut BNPlugin;
291291
type Context = ();
292292
type Wrapped<'a> = Guard<'a, Self>;
293293
}

0 commit comments

Comments
 (0)