From d041e78a06686290aaa4a465dffe3a0ae648ba02 Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Wed, 28 Aug 2024 14:52:31 -0400 Subject: Add RemoteFolder C++ APIs --- binaryninjaapi.h | 9 +++++++ collaboration.cpp | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 70d40b47..3c6bc72a 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -18217,6 +18217,15 @@ namespace BinaryNinja::Collaboration { public: RemoteFolder(BNRemoteFolder* remoteFolder); + + Ref GetCoreFolder(); + Ref GetProject(); + Ref GetParent(); + Ref GetRemote(); + std::string GetId(); + std::string GetUrl(); + std::string GetName(); + std::string GetDescription(); }; class RemoteFile; diff --git a/collaboration.cpp b/collaboration.cpp index f99409a7..f3bb242e 100644 --- a/collaboration.cpp +++ b/collaboration.cpp @@ -1878,6 +1878,80 @@ RemoteFolder::RemoteFolder(BNRemoteFolder* folder) } +Ref RemoteFolder::GetCoreFolder() +{ + BNProjectFolder* res = BNRemoteFolderGetCoreFolder(m_object); + if (!res) + return nullptr; + return new ProjectFolder(res); +} + + +Ref RemoteFolder::GetProject() +{ + BNRemoteProject* res = BNRemoteFolderGetProject(m_object); + if (!res) + return nullptr; + return new RemoteProject(res); +} + + +Ref RemoteFolder::GetParent() +{ + BNRemoteFolder* res = nullptr; + if (!BNRemoteFolderGetParent(m_object, &res)) + return nullptr; + if (!res) + return nullptr; + return new RemoteFolder(res); +} + + +Ref RemoteFolder::GetRemote() +{ + BNRemote* res = BNRemoteFolderGetRemote(m_object); + if (!res) + return nullptr; + return new Remote(res); +} + + +std::string RemoteFolder::GetId() +{ + char* res = BNRemoteFolderGetId(m_object); + std::string out = res; + BNFreeString(res); + return out; +} + + +std::string RemoteFolder::GetUrl() +{ + char* res = BNRemoteFolderGetUrl(m_object); + std::string out = res; + BNFreeString(res); + return out; +} + + +std::string RemoteFolder::GetName() +{ + char* res = BNRemoteFolderGetName(m_object); + std::string out = res; + BNFreeString(res); + return out; +} + + +std::string RemoteFolder::GetDescription() +{ + char* res = BNRemoteFolderGetDescription(m_object); + std::string out = res; + BNFreeString(res); + return out; +} + + CollabPermission::CollabPermission(BNCollaborationPermission* permission) { m_object = permission; -- cgit v1.3.1