Skip to content
Snippets Groups Projects
Commit 37b09f4d authored by Tim Emiola's avatar Tim Emiola
Browse files

Adds the call operation codes

parent 564719d2
No related branches found
No related tags found
No related merge requests found
......@@ -500,6 +500,26 @@ void Init_grpc_error_codes() {
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() {
/* CallError inherits from Exception to signal that it is non-recoverable */
rb_eCallError =
......@@ -543,6 +563,7 @@ void Init_grpc_call() {
rb_define_const(rb_cCall, "INTERNAL_ALL_CALLs", hash_all_calls);
Init_grpc_error_codes();
Init_grpc_op_codes();
}
/* Gets the call from the ruby object */
......
......@@ -66,6 +66,27 @@ describe GRPC::Core::RpcErrors do
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
let (:client_queue) { GRPC::Core::CompletionQueue.new }
let (:test_tag) { Object.new }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment