Go to the documentation of this file.
19 #ifndef GRPC_NO_BINDER
25 #include "absl/memory/memory.h"
36 #ifdef GPR_SUPPORT_BINDER_TRANSPORT
44 JNIEXPORT jobject JNICALL
45 Java_io_grpc_binder_cpp_GrpcCppServerBuilder_GetEndpointBinderInternal__Ljava_lang_String_2(
46 JNIEnv* jni_env, jobject, jstring conn_id_jstring) {
47 grpc_binder::ndk_util::AIBinder* ai_binder =
nullptr;
52 const char* conn_id = jni_env->GetStringUTFChars(conn_id_jstring, &isCopy);
53 ai_binder =
static_cast<grpc_binder::ndk_util::AIBinder*
>(
55 if (ai_binder ==
nullptr) {
59 if (isCopy == JNI_TRUE) {
60 jni_env->ReleaseStringUTFChars(conn_id_jstring, conn_id);
64 if (ai_binder ==
nullptr) {
68 return grpc_binder::ndk_util::AIBinder_toJavaBinder(jni_env, ai_binder);
75 namespace experimental {
107 void* endpoint_binder) {
112 (*g_endpoint_binder_pool)[
service] = endpoint_binder;
138 std::shared_ptr<grpc::experimental::binder::SecurityPolicy>
146 const std::vector<grpc_pollset*>* )
override {
189 " is not allowed to connect to this "
190 "server according to security policy.");
202 std::unique_ptr<grpc_binder::Binder> client_binder{};
207 if (!client_binder) {
210 client_binder->Initialize();
234 std::shared_ptr<grpc::experimental::binder::SecurityPolicy>
239 if (
addr.compare(0, kBinderUriScheme.size(), kBinderUriScheme) != 0) {
246 core_server, conn_id,
std::move(factory), security_policy)));
void grpc_add_endpoint_binder(const std::string &service, void *endpoint_binder)
Status InvalidArgumentError(absl::string_view message)
grpc_error_handle SetupTransport(grpc_transport *transport, grpc_pollset *accepting_pollset, const grpc_channel_args *args, const RefCountedPtr< channelz::SocketNode > &socket_node)
BinderServerListener(Server *server, std::string addr, BinderTxReceiverFactory factory, std::shared_ptr< grpc::experimental::binder::SecurityPolicy > security_policy)
std::shared_ptr< grpc::experimental::binder::SecurityPolicy > security_policy_
void * grpc_get_endpoint_binder(const std::string &service)
bool AddBinderPort(const std::string &addr, grpc_server *server, BinderTxReceiverFactory factory, std::shared_ptr< grpc::experimental::binder::SecurityPolicy > security_policy)
channelz::ListenSocketNode * channelz_listen_socket_node() const override
const grpc_channel_args * channel_args() const
BinderTxReceiverFactory factory_
uint32_t transaction_code_t
void * GetEndpointBinder(const std::string &service)
Status PermissionDeniedError(absl::string_view message)
~BinderServerListener() override
void SetOnDestroyDone(grpc_closure *on_destroy_done) override
grpc_closure * on_destroy_done_
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
std::unique_ptr< grpc_binder::TransactionReceiver > tx_receiver_
void AddListener(OrphanablePtr< ListenerInterface > listener)
void grpc_channel_args_destroy(grpc_channel_args *a)
virtual absl::Status ReadBinder(std::unique_ptr< Binder > *data)=0
grpc_channel_args * grpc_channel_args_copy(const grpc_channel_args *src)
struct grpc_server grpc_server
absl::Status OnSetupTransport(transaction_code_t code, grpc_binder::ReadableParcel *parcel, int uid)
grpc_transport * grpc_create_binder_transport_server(std::unique_ptr< grpc_binder::Binder > client_binder, std::shared_ptr< grpc::experimental::binder::SecurityPolicy > security_policy)
std::function< std::unique_ptr< grpc_binder::TransactionReceiver >(grpc_binder::TransactionReceiver::OnTransactCb)> BinderTxReceiverFactory
static absl::flat_hash_map< std::string, void * > * g_endpoint_binder_pool
void RemoveEndpointBinder(const std::string &service)
void AddEndpointBinder(const std::string &service, void *endpoint_binder)
grpc_core::ExecCtx exec_ctx
std::unique_ptr< T, Deleter > OrphanablePtr
void grpc_remove_endpoint_binder(const std::string &service)
ABSL_MUST_USE_RESULT bool ok() const
static void Run(const DebugLocation &location, grpc_closure *closure, grpc_error_handle error)
virtual absl::Status ReadInt32(int32_t *data)=0
__attribute__((deprecated("Please use GRPCProtoMethod."))) @interface ProtoMethod NSString * service
absl::Status grpc_error_to_absl_status(grpc_error_handle error)
static Server * FromC(grpc_server *c_type)
static bool to_string(zval *from)
void Start(Server *, const std::vector< grpc_pollset * > *) override
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:38