Adds the call operation codes

pull/1188/head
Tim Emiola 10 years ago
parent 564719d28e
commit 37b09f4d83
  1. 21
      src/ruby/ext/grpc/rb_call.c
  2. 21
      src/ruby/spec/call_spec.rb

@ -500,6 +500,26 @@ void Init_grpc_error_codes() {
rb_obj_freeze(rb_error_code_details); rb_obj_freeze(rb_error_code_details);
} }
void Init_grpc_op_codes() {
/* Constants representing operation type codes in grpc.h */
VALUE rb_CallOps = rb_define_module_under(rb_mGrpcCore, "CallOps");
rb_define_const(rb_CallOps, "SEND_INITIAL_METADATA",
UINT2NUM(GRPC_OP_SEND_INITIAL_METADATA));
rb_define_const(rb_CallOps, "SEND_MESSAGE", UINT2NUM(GRPC_OP_SEND_MESSAGE));
rb_define_const(rb_CallOps, "SEND_CLOSE_FROM_CLIENT",
UINT2NUM(GRPC_OP_SEND_CLOSE_FROM_CLIENT));
rb_define_const(rb_CallOps, "SEND_STATUS_FROM_SERVER",
UINT2NUM(GRPC_OP_SEND_STATUS_FROM_SERVER));
rb_define_const(rb_CallOps, "RECV_INITIAL_METADATA",
UINT2NUM(GRPC_OP_RECV_INITIAL_METADATA));
rb_define_const(rb_CallOps, "RECV_MESSAGE",
UINT2NUM(GRPC_OP_RECV_MESSAGE));
rb_define_const(rb_CallOps, "RECV_STATUS_ON_CLIENT",
UINT2NUM(GRPC_OP_RECV_STATUS_ON_CLIENT));
rb_define_const(rb_CallOps, "RECV_CLOSE_ON_SERVER",
UINT2NUM(GRPC_OP_RECV_CLOSE_ON_SERVER));
}
void Init_grpc_call() { void Init_grpc_call() {
/* CallError inherits from Exception to signal that it is non-recoverable */ /* CallError inherits from Exception to signal that it is non-recoverable */
rb_eCallError = rb_eCallError =
@ -543,6 +563,7 @@ void Init_grpc_call() {
rb_define_const(rb_cCall, "INTERNAL_ALL_CALLs", hash_all_calls); rb_define_const(rb_cCall, "INTERNAL_ALL_CALLs", hash_all_calls);
Init_grpc_error_codes(); Init_grpc_error_codes();
Init_grpc_op_codes();
} }
/* Gets the call from the ruby object */ /* Gets the call from the ruby object */

@ -66,6 +66,27 @@ describe GRPC::Core::RpcErrors do
end end
end end
describe GRPC::Core::CallOps do
before(:each) do
@known_types = {
SEND_INITIAL_METADATA: 0,
SEND_MESSAGE: 1,
SEND_CLOSE_FROM_CLIENT: 2,
SEND_STATUS_FROM_SERVER: 3,
RECV_INITIAL_METADATA: 4,
RECV_MESSAGE: 5,
RECV_STATUS_ON_CLIENT: 6,
RECV_CLOSE_ON_SERVER: 7,
}
end
it 'should have symbols for all the known operation types' do
m = GRPC::Core::CallOps
syms_and_codes = m.constants.collect { |c| [c, m.const_get(c)] }
expect(Hash[syms_and_codes]).to eq(@known_types)
end
end
describe GRPC::Core::Call do describe GRPC::Core::Call do
let (:client_queue) { GRPC::Core::CompletionQueue.new } let (:client_queue) { GRPC::Core::CompletionQueue.new }
let (:test_tag) { Object.new } let (:test_tag) { Object.new }

Loading…
Cancel
Save