Grpc-XS

 view release on metacpan or  search on metacpan

ext/call_credentials.xs  view on Meta::CPAN

Grpc::XS::CallCredentials
createComposite(Grpc::XS::CallCredentials cred1, Grpc::XS::CallCredentials cred2)
  PREINIT:
    CallCredentialsCTX* ctx = (CallCredentialsCTX *)malloc( sizeof(CallCredentialsCTX) );
    ctx->wrapped = NULL;
  CODE:
    ctx->wrapped = grpc_composite_call_credentials_create(
                                cred1->wrapped, cred2->wrapped, NULL);
    RETVAL = ctx;
  OUTPUT: RETVAL

Grpc::XS::CallCredentials
createFromPlugin(SV* callback)
  PREINIT:
    CallCredentialsCTX* ctx = (CallCredentialsCTX *)malloc( sizeof(CallCredentialsCTX) );
    ctx->wrapped = NULL;
  CODE:
    grpc_metadata_credentials_plugin plugin;
    plugin.get_metadata = plugin_get_metadata;
    plugin.destroy = plugin_destroy_state;
    plugin.state = (void *)SvRV(callback);
    plugin.type = "";
    ctx->wrapped = grpc_metadata_credentials_create_from_plugin(plugin,
#if GRPC_METADATA_CREDENTIALS_CRATE_FROM_PLUGIN_HAS_3_ARGS
        GRPC_PRIVACY_AND_INTEGRITY,
#endif
    NULL);
    SvREFCNT_inc(callback);
    RETVAL = ctx;
  OUTPUT: RETVAL

void
DESTROY(Grpc::XS::CallCredentials self)
  CODE:
    if (self->wrapped != NULL) {
      grpc_call_credentials_release(self->wrapped);
    }
    Safefree(self);



( run in 0.704 second using v1.01-cache-2.11-cpan-39bf76dae61 )