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 )