nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 1 | /* |
| 2 | * |
Jan Tattermusch | 7897ae9 | 2017-06-07 22:57:36 +0200 | [diff] [blame] | 3 | * Copyright 2015 gRPC authors. |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 4 | * |
Jan Tattermusch | 7897ae9 | 2017-06-07 22:57:36 +0200 | [diff] [blame] | 5 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | * you may not use this file except in compliance with the License. |
| 7 | * You may obtain a copy of the License at |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 8 | * |
Jan Tattermusch | 7897ae9 | 2017-06-07 22:57:36 +0200 | [diff] [blame] | 9 | * http://www.apache.org/licenses/LICENSE-2.0 |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 10 | * |
Jan Tattermusch | 7897ae9 | 2017-06-07 22:57:36 +0200 | [diff] [blame] | 11 | * Unless required by applicable law or agreed to in writing, software |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | * See the License for the specific language governing permissions and |
| 15 | * limitations under the License. |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 16 | * |
| 17 | */ |
| 18 | |
| 19 | #ifndef GRPC_RB_CALL_H_ |
| 20 | #define GRPC_RB_CALL_H_ |
| 21 | |
Nicolas "Pixel" Noble | 357cb81 | 2015-05-14 05:33:43 +0200 | [diff] [blame] | 22 | #include <ruby/ruby.h> |
| 23 | |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 24 | #include <grpc/grpc.h> |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 25 | |
| 26 | /* Gets the wrapped call from a VALUE. */ |
Craig Tiller | baa14a9 | 2017-11-03 09:09:36 -0700 | [diff] [blame] | 27 | grpc_call* grpc_rb_get_wrapped_call(VALUE v); |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 28 | |
| 29 | /* Gets the VALUE corresponding to given grpc_call. */ |
Craig Tiller | baa14a9 | 2017-11-03 09:09:36 -0700 | [diff] [blame] | 30 | VALUE grpc_rb_wrap_call(grpc_call* c, grpc_completion_queue* q); |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 31 | |
| 32 | /* Provides the details of an call error */ |
Craig Tiller | baa14a9 | 2017-11-03 09:09:36 -0700 | [diff] [blame] | 33 | const char* grpc_call_error_detail_of(grpc_call_error err); |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 34 | |
Tim Emiola | 1dae4ac | 2015-03-27 17:17:37 -0700 | [diff] [blame] | 35 | /* Converts a metadata array to a hash. */ |
Craig Tiller | baa14a9 | 2017-11-03 09:09:36 -0700 | [diff] [blame] | 36 | VALUE grpc_rb_md_ary_to_h(grpc_metadata_array* md_ary); |
Tim Emiola | 1dae4ac | 2015-03-27 17:17:37 -0700 | [diff] [blame] | 37 | |
murgatroid99 | 9946f2b | 2015-12-04 14:36:27 -0800 | [diff] [blame] | 38 | /* grpc_rb_md_ary_convert converts a ruby metadata hash into |
| 39 | a grpc_metadata_array. |
| 40 | */ |
Craig Tiller | baa14a9 | 2017-11-03 09:09:36 -0700 | [diff] [blame] | 41 | void grpc_rb_md_ary_convert(VALUE md_ary_hash, grpc_metadata_array* md_ary); |
murgatroid99 | 9946f2b | 2015-12-04 14:36:27 -0800 | [diff] [blame] | 42 | |
Alexander Polcyn | 85cc143 | 2017-07-14 16:36:51 -0700 | [diff] [blame] | 43 | void grpc_rb_metadata_array_destroy_including_entries( |
Craig Tiller | baa14a9 | 2017-11-03 09:09:36 -0700 | [diff] [blame] | 44 | grpc_metadata_array* md_ary); |
Alexander Polcyn | 85cc143 | 2017-07-14 16:36:51 -0700 | [diff] [blame] | 45 | |
Yuki Yugui Sonoda | a7d369e | 2015-04-11 11:48:36 +0900 | [diff] [blame] | 46 | /* grpc_rb_eCallError is the ruby class of the exception thrown during call |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 47 | operations. */ |
Yuki Yugui Sonoda | a7d369e | 2015-04-11 11:48:36 +0900 | [diff] [blame] | 48 | extern VALUE grpc_rb_eCallError; |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 49 | |
| 50 | /* Initializes the Call class. */ |
Tim Emiola | 409e6c8 | 2015-02-17 17:46:35 -0800 | [diff] [blame] | 51 | void Init_grpc_call(); |
nnoble | 097ef9b | 2014-12-01 17:06:10 -0800 | [diff] [blame] | 52 | |
Craig Tiller | b5dcec5 | 2015-01-13 11:13:42 -0800 | [diff] [blame] | 53 | #endif /* GRPC_RB_CALL_H_ */ |