Grpc-XS
view release on metacpan or search on metacpan
ext/call.xs view on Meta::CPAN
grpc_slice_to_sv(recv_status_details));
#else
hv_stores(recv_status, "details",
newSVpv(status_details, 0));
#endif
hv_stores(result,"status",newRV_noinc((SV *)recv_status));
break;
case GRPC_OP_RECV_CLOSE_ON_SERVER:
hv_stores(result,"cancelled",newSViv(cancelled));
break;
default:
break;
}
}
cleanup:
grpc_metadata_array_destroy(&metadata);
grpc_metadata_array_destroy(&trailing_metadata);
grpc_metadata_array_destroy(&recv_metadata);
grpc_metadata_array_destroy(&recv_trailing_metadata);
#if defined(GRPC_VERSION_1_2)
grpc_slice_unref(recv_status_details);
grpc_slice_unref(send_status_details);
#else
if (status_details != NULL) {
gpr_free(status_details);
}
#endif
for (i = 0; i < op_num; i++) {
if (ops[i].op == GRPC_OP_SEND_MESSAGE) {
#if !defined(GRPC_VERSION_1_1)
grpc_byte_buffer_destroy(ops[i].data.send_message);
#else
grpc_byte_buffer_destroy(ops[i].data.send_message.send_message);
#endif
}
if (ops[i].op == GRPC_OP_RECV_MESSAGE) {
grpc_byte_buffer_destroy(message);
}
}
RETVAL = (SV*)newRV_noinc((SV *)result);
OUTPUT: RETVAL
const char*
getPeer(Grpc::XS::Call self)
CODE:
RETVAL = grpc_call_get_peer(self->wrapped);
OUTPUT: RETVAL
void
cancel(Grpc::XS::Call self)
CODE:
grpc_call_cancel(self->wrapped, NULL);
OUTPUT:
int
setCredentials(Grpc::XS::Call self, Grpc::XS::CallCredentials creds)
CODE:
int error = GRPC_CALL_ERROR;
error = grpc_call_set_credentials(self->wrapped, creds->wrapped);
RETVAL = error;
OUTPUT: RETVAL
void
DESTROY(Grpc::XS::Call self)
CODE:
if (self->wrapped != NULL) {
#if defined(GRPC_VERSION_1_4)
grpc_call_unref(self->wrapped);
#else
grpc_call_destroy(self->wrapped);
#endif
}
Safefree(self);
( run in 0.855 second using v1.01-cache-2.11-cpan-39bf76dae61 )