diff options
| author | Josh Ferrell <josh@vector35.com> | 2024-08-28 14:52:31 -0400 |
|---|---|---|
| committer | Josh Ferrell <josh@vector35.com> | 2024-08-28 14:52:31 -0400 |
| commit | d041e78a06686290aaa4a465dffe3a0ae648ba02 (patch) | |
| tree | 7c8338162af29c414cb8c4011133f13c1b54398a | |
| parent | 18445ef846437fa52f9ebaa54109c8abc551c49d (diff) | |
Add RemoteFolder C++ APIs
| -rw-r--r-- | binaryninjaapi.h | 9 | ||||
| -rw-r--r-- | collaboration.cpp | 74 |
2 files changed, 83 insertions, 0 deletions
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<ProjectFolder> GetCoreFolder(); + Ref<RemoteProject> GetProject(); + Ref<RemoteFolder> GetParent(); + Ref<Remote> 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<ProjectFolder> RemoteFolder::GetCoreFolder() +{ + BNProjectFolder* res = BNRemoteFolderGetCoreFolder(m_object); + if (!res) + return nullptr; + return new ProjectFolder(res); +} + + +Ref<RemoteProject> RemoteFolder::GetProject() +{ + BNRemoteProject* res = BNRemoteFolderGetProject(m_object); + if (!res) + return nullptr; + return new RemoteProject(res); +} + + +Ref<RemoteFolder> RemoteFolder::GetParent() +{ + BNRemoteFolder* res = nullptr; + if (!BNRemoteFolderGetParent(m_object, &res)) + return nullptr; + if (!res) + return nullptr; + return new RemoteFolder(res); +} + + +Ref<Remote> 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; |
