1# Copyright 2015 gRPC authors. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15cimport libc.time 16 17 18# Typedef types with approximately the same semantics to provide their names to 19# Cython 20ctypedef unsigned char uint8_t 21ctypedef int int32_t 22ctypedef unsigned uint32_t 23ctypedef long int64_t 24 25 26cdef extern from "grpc/support/alloc.h": 27 28 void *gpr_malloc(size_t size) nogil 29 void *gpr_zalloc(size_t size) nogil 30 void gpr_free(void *ptr) nogil 31 void *gpr_realloc(void *p, size_t size) nogil 32 33 34cdef extern from "grpc/byte_buffer_reader.h": 35 36 struct grpc_byte_buffer_reader: 37 # We don't care about the internals 38 pass 39 40 41cdef extern from "grpc/grpc.h": 42 43 ctypedef struct grpc_slice: 44 # don't worry about writing out the members of grpc_slice; we never access 45 # them directly. 46 pass 47 48 grpc_slice grpc_slice_ref(grpc_slice s) nogil 49 void grpc_slice_unref(grpc_slice s) nogil 50 grpc_slice grpc_empty_slice() nogil 51 grpc_slice grpc_slice_new(void *p, size_t len, void (*destroy)(void *)) nogil 52 grpc_slice grpc_slice_new_with_len( 53 void *p, size_t len, void (*destroy)(void *, size_t)) nogil 54 grpc_slice grpc_slice_malloc(size_t length) nogil 55 grpc_slice grpc_slice_from_copied_string(const char *source) nogil 56 grpc_slice grpc_slice_from_copied_buffer(const char *source, size_t len) nogil 57 grpc_slice grpc_slice_copy(grpc_slice s) nogil 58 59 # Declare functions for function-like macros (because Cython)... 60 void *grpc_slice_start_ptr "GRPC_SLICE_START_PTR" (grpc_slice s) nogil 61 size_t grpc_slice_length "GRPC_SLICE_LENGTH" (grpc_slice s) nogil 62 63 ctypedef enum gpr_clock_type: 64 GPR_CLOCK_MONOTONIC 65 GPR_CLOCK_REALTIME 66 GPR_CLOCK_PRECISE 67 GPR_TIMESPAN 68 69 ctypedef struct gpr_timespec: 70 int64_t seconds "tv_sec" 71 int32_t nanoseconds "tv_nsec" 72 gpr_clock_type clock_type 73 74 gpr_timespec gpr_time_0(gpr_clock_type type) nogil 75 gpr_timespec gpr_inf_future(gpr_clock_type type) nogil 76 gpr_timespec gpr_inf_past(gpr_clock_type type) nogil 77 78 gpr_timespec gpr_now(gpr_clock_type clock) nogil 79 80 gpr_timespec gpr_convert_clock_type(gpr_timespec t, 81 gpr_clock_type target_clock) nogil 82 83 gpr_timespec gpr_time_from_millis(int64_t ms, gpr_clock_type type) nogil 84 85 gpr_timespec gpr_time_add(gpr_timespec a, gpr_timespec b) nogil 86 87 int gpr_time_cmp(gpr_timespec a, gpr_timespec b) nogil 88 89 ctypedef struct grpc_byte_buffer: 90 # We don't care about the internals. 91 pass 92 93 grpc_byte_buffer *grpc_raw_byte_buffer_create(grpc_slice *slices, 94 size_t nslices) nogil 95 size_t grpc_byte_buffer_length(grpc_byte_buffer *bb) nogil 96 void grpc_byte_buffer_destroy(grpc_byte_buffer *byte_buffer) nogil 97 98 int grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, 99 grpc_byte_buffer *buffer) nogil 100 int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, 101 grpc_slice *slice) nogil 102 void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader) nogil 103 104 ctypedef enum grpc_status_code: 105 GRPC_STATUS_OK 106 GRPC_STATUS_CANCELLED 107 GRPC_STATUS_UNKNOWN 108 GRPC_STATUS_INVALID_ARGUMENT 109 GRPC_STATUS_DEADLINE_EXCEEDED 110 GRPC_STATUS_NOT_FOUND 111 GRPC_STATUS_ALREADY_EXISTS 112 GRPC_STATUS_PERMISSION_DENIED 113 GRPC_STATUS_UNAUTHENTICATED 114 GRPC_STATUS_RESOURCE_EXHAUSTED 115 GRPC_STATUS_FAILED_PRECONDITION 116 GRPC_STATUS_ABORTED 117 GRPC_STATUS_OUT_OF_RANGE 118 GRPC_STATUS_UNIMPLEMENTED 119 GRPC_STATUS_INTERNAL 120 GRPC_STATUS_UNAVAILABLE 121 GRPC_STATUS_DATA_LOSS 122 GRPC_STATUS__DO_NOT_USE 123 124 const char *GRPC_ARG_PRIMARY_USER_AGENT_STRING 125 const char *GRPC_ARG_ENABLE_CENSUS 126 const char *GRPC_ARG_MAX_CONCURRENT_STREAMS 127 const char *GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH 128 const char *GRPC_ARG_MAX_SEND_MESSAGE_LENGTH 129 const char *GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER 130 const char *GRPC_ARG_DEFAULT_AUTHORITY 131 const char *GRPC_ARG_PRIMARY_USER_AGENT_STRING 132 const char *GRPC_ARG_SECONDARY_USER_AGENT_STRING 133 const char *GRPC_SSL_TARGET_NAME_OVERRIDE_ARG 134 const char *GRPC_SSL_SESSION_CACHE_ARG 135 const char *GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM 136 const char *GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL 137 const char *GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET 138 139 const int GRPC_WRITE_BUFFER_HINT 140 const int GRPC_WRITE_NO_COMPRESS 141 const int GRPC_WRITE_USED_MASK 142 143 const int GRPC_MAX_COMPLETION_QUEUE_PLUCKERS 144 145 ctypedef struct grpc_completion_queue: 146 # We don't care about the internals (and in fact don't know them) 147 pass 148 149 ctypedef struct grpc_channel: 150 # We don't care about the internals (and in fact don't know them) 151 pass 152 153 ctypedef struct grpc_server: 154 # We don't care about the internals (and in fact don't know them) 155 pass 156 157 ctypedef struct grpc_call: 158 # We don't care about the internals (and in fact don't know them) 159 pass 160 161 ctypedef enum grpc_arg_type: 162 GRPC_ARG_STRING 163 GRPC_ARG_INTEGER 164 GRPC_ARG_POINTER 165 166 ctypedef struct grpc_arg_pointer_vtable: 167 void *(*copy)(void *) 168 void (*destroy)(void *) 169 int (*cmp)(void *, void *) 170 171 ctypedef struct grpc_arg_value_pointer: 172 void *address "p" 173 grpc_arg_pointer_vtable *vtable 174 175 union grpc_arg_value: 176 char *string 177 int integer 178 grpc_arg_value_pointer pointer 179 180 ctypedef struct grpc_arg: 181 grpc_arg_type type 182 char *key 183 grpc_arg_value value 184 185 ctypedef struct grpc_channel_args: 186 size_t arguments_length "num_args" 187 grpc_arg *arguments "args" 188 189 ctypedef enum grpc_compression_level: 190 GRPC_COMPRESS_LEVEL_NONE 191 GRPC_COMPRESS_LEVEL_LOW 192 GRPC_COMPRESS_LEVEL_MED 193 GRPC_COMPRESS_LEVEL_HIGH 194 195 ctypedef enum grpc_stream_compression_level: 196 GRPC_STREAM_COMPRESS_LEVEL_NONE 197 GRPC_STREAM_COMPRESS_LEVEL_LOW 198 GRPC_STREAM_COMPRESS_LEVEL_MED 199 GRPC_STREAM_COMPRESS_LEVEL_HIGH 200 201 ctypedef enum grpc_call_error: 202 GRPC_CALL_OK 203 GRPC_CALL_ERROR 204 GRPC_CALL_ERROR_NOT_ON_SERVER 205 GRPC_CALL_ERROR_NOT_ON_CLIENT 206 GRPC_CALL_ERROR_ALREADY_ACCEPTED 207 GRPC_CALL_ERROR_ALREADY_INVOKED 208 GRPC_CALL_ERROR_NOT_INVOKED 209 GRPC_CALL_ERROR_ALREADY_FINISHED 210 GRPC_CALL_ERROR_TOO_MANY_OPERATIONS 211 GRPC_CALL_ERROR_INVALID_FLAGS 212 GRPC_CALL_ERROR_INVALID_METADATA 213 214 ctypedef enum grpc_cq_completion_type: 215 GRPC_CQ_NEXT 216 GRPC_CQ_PLUCK 217 218 ctypedef enum grpc_cq_polling_type: 219 GRPC_CQ_DEFAULT_POLLING 220 GRPC_CQ_NON_LISTENING 221 GRPC_CQ_NON_POLLING 222 223 ctypedef struct grpc_completion_queue_attributes: 224 int version 225 grpc_cq_completion_type cq_completion_type 226 grpc_cq_polling_type cq_polling_type 227 228 ctypedef enum grpc_connectivity_state: 229 GRPC_CHANNEL_IDLE 230 GRPC_CHANNEL_CONNECTING 231 GRPC_CHANNEL_READY 232 GRPC_CHANNEL_TRANSIENT_FAILURE 233 GRPC_CHANNEL_SHUTDOWN 234 235 ctypedef struct grpc_metadata: 236 grpc_slice key 237 grpc_slice value 238 # ignore the 'internal_data.obfuscated' fields. 239 240 ctypedef enum grpc_completion_type: 241 GRPC_QUEUE_SHUTDOWN 242 GRPC_QUEUE_TIMEOUT 243 GRPC_OP_COMPLETE 244 245 ctypedef struct grpc_event: 246 grpc_completion_type type 247 int success 248 void *tag 249 250 ctypedef struct grpc_metadata_array: 251 size_t count 252 size_t capacity 253 grpc_metadata *metadata 254 255 void grpc_metadata_array_init(grpc_metadata_array *array) nogil 256 void grpc_metadata_array_destroy(grpc_metadata_array *array) nogil 257 258 ctypedef struct grpc_call_details: 259 grpc_slice method 260 grpc_slice host 261 gpr_timespec deadline 262 263 void grpc_call_details_init(grpc_call_details *details) nogil 264 void grpc_call_details_destroy(grpc_call_details *details) nogil 265 266 ctypedef enum grpc_op_type: 267 GRPC_OP_SEND_INITIAL_METADATA 268 GRPC_OP_SEND_MESSAGE 269 GRPC_OP_SEND_CLOSE_FROM_CLIENT 270 GRPC_OP_SEND_STATUS_FROM_SERVER 271 GRPC_OP_RECV_INITIAL_METADATA 272 GRPC_OP_RECV_MESSAGE 273 GRPC_OP_RECV_STATUS_ON_CLIENT 274 GRPC_OP_RECV_CLOSE_ON_SERVER 275 276 ctypedef struct grpc_op_send_initial_metadata_maybe_compression_level: 277 uint8_t is_set 278 grpc_compression_level level 279 280 ctypedef struct grpc_op_data_send_initial_metadata: 281 size_t count 282 grpc_metadata *metadata 283 grpc_op_send_initial_metadata_maybe_compression_level maybe_compression_level 284 285 ctypedef struct grpc_op_data_send_status_from_server: 286 size_t trailing_metadata_count 287 grpc_metadata *trailing_metadata 288 grpc_status_code status 289 grpc_slice *status_details 290 291 ctypedef struct grpc_op_data_recv_status_on_client: 292 grpc_metadata_array *trailing_metadata 293 grpc_status_code *status 294 grpc_slice *status_details 295 char** error_string 296 297 ctypedef struct grpc_op_data_recv_close_on_server: 298 int *cancelled 299 300 ctypedef struct grpc_op_data_send_message: 301 grpc_byte_buffer *send_message 302 303 ctypedef struct grpc_op_data_receive_message: 304 grpc_byte_buffer **receive_message "recv_message" 305 306 ctypedef struct grpc_op_data_receive_initial_metadata: 307 grpc_metadata_array *receive_initial_metadata "recv_initial_metadata" 308 309 union grpc_op_data: 310 grpc_op_data_send_initial_metadata send_initial_metadata 311 grpc_op_data_send_message send_message 312 grpc_op_data_send_status_from_server send_status_from_server 313 grpc_op_data_receive_initial_metadata receive_initial_metadata "recv_initial_metadata" 314 grpc_op_data_receive_message receive_message "recv_message" 315 grpc_op_data_recv_status_on_client receive_status_on_client "recv_status_on_client" 316 grpc_op_data_recv_close_on_server receive_close_on_server "recv_close_on_server" 317 318 ctypedef struct grpc_op: 319 grpc_op_type type "op" 320 uint32_t flags 321 grpc_op_data data 322 323 void grpc_init() nogil 324 void grpc_shutdown() nogil 325 int grpc_is_initialized() nogil 326 327 ctypedef struct grpc_completion_queue_factory: 328 pass 329 330 grpc_completion_queue_factory *grpc_completion_queue_factory_lookup( 331 const grpc_completion_queue_attributes* attributes) nogil 332 grpc_completion_queue *grpc_completion_queue_create( 333 const grpc_completion_queue_factory* factory, 334 const grpc_completion_queue_attributes* attr, void* reserved) nogil 335 grpc_completion_queue *grpc_completion_queue_create_for_next(void *reserved) nogil 336 337 grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, 338 gpr_timespec deadline, 339 void *reserved) nogil 340 grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag, 341 gpr_timespec deadline, 342 void *reserved) nogil 343 void grpc_completion_queue_shutdown(grpc_completion_queue *cq) nogil 344 void grpc_completion_queue_destroy(grpc_completion_queue *cq) nogil 345 346 grpc_call_error grpc_call_start_batch( 347 grpc_call *call, const grpc_op *ops, size_t nops, void *tag, 348 void *reserved) nogil 349 grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved) nogil 350 grpc_call_error grpc_call_cancel_with_status(grpc_call *call, 351 grpc_status_code status, 352 const char *description, 353 void *reserved) nogil 354 char *grpc_call_get_peer(grpc_call *call) nogil 355 void grpc_call_unref(grpc_call *call) nogil 356 357 grpc_channel *grpc_insecure_channel_create(const char *target, 358 const grpc_channel_args *args, 359 void *reserved) nogil 360 grpc_call *grpc_channel_create_call( 361 grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask, 362 grpc_completion_queue *completion_queue, grpc_slice method, 363 const grpc_slice *host, gpr_timespec deadline, void *reserved) nogil 364 grpc_connectivity_state grpc_channel_check_connectivity_state( 365 grpc_channel *channel, int try_to_connect) nogil 366 void grpc_channel_watch_connectivity_state( 367 grpc_channel *channel, grpc_connectivity_state last_observed_state, 368 gpr_timespec deadline, grpc_completion_queue *cq, void *tag) nogil 369 char *grpc_channel_get_target(grpc_channel *channel) nogil 370 void grpc_channel_destroy(grpc_channel *channel) nogil 371 372 grpc_server *grpc_server_create( 373 const grpc_channel_args *args, void *reserved) nogil 374 grpc_call_error grpc_server_request_call( 375 grpc_server *server, grpc_call **call, grpc_call_details *details, 376 grpc_metadata_array *request_metadata, grpc_completion_queue 377 *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void 378 *tag_new) nogil 379 void grpc_server_register_completion_queue(grpc_server *server, 380 grpc_completion_queue *cq, 381 void *reserved) nogil 382 int grpc_server_add_insecure_http2_port( 383 grpc_server *server, const char *addr) nogil 384 void grpc_server_start(grpc_server *server) nogil 385 void grpc_server_shutdown_and_notify( 386 grpc_server *server, grpc_completion_queue *cq, void *tag) nogil 387 void grpc_server_cancel_all_calls(grpc_server *server) nogil 388 void grpc_server_destroy(grpc_server *server) nogil 389 390 391cdef extern from "grpc/grpc_security.h": 392 393 # Declare this as an enum, this is the only way to make it a const in 394 # cython 395 enum: GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX 396 397 ctypedef enum grpc_ssl_roots_override_result: 398 GRPC_SSL_ROOTS_OVERRIDE_OK 399 GRPC_SSL_ROOTS_OVERRIDE_FAILED_PERMANENTLY 400 GRPC_SSL_ROOTS_OVERRIDE_FAILED 401 402 ctypedef enum grpc_ssl_client_certificate_request_type: 403 GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE, 404 GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY 405 GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY 406 GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY 407 GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY 408 409 ctypedef enum grpc_ssl_certificate_config_reload_status: 410 GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_UNCHANGED 411 GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_NEW 412 GRPC_SSL_CERTIFICATE_CONFIG_RELOAD_FAIL 413 414 ctypedef struct grpc_ssl_server_certificate_config: 415 # We don't care about the internals 416 pass 417 418 ctypedef struct grpc_ssl_server_credentials_options: 419 # We don't care about the internals 420 pass 421 422 grpc_ssl_server_certificate_config * grpc_ssl_server_certificate_config_create( 423 const char *pem_root_certs, 424 const grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, 425 size_t num_key_cert_pairs) 426 427 void grpc_ssl_server_certificate_config_destroy(grpc_ssl_server_certificate_config *config) 428 429 ctypedef grpc_ssl_certificate_config_reload_status (*grpc_ssl_server_certificate_config_callback)( 430 void *user_data, 431 grpc_ssl_server_certificate_config **config) 432 433 grpc_ssl_server_credentials_options *grpc_ssl_server_credentials_create_options_using_config( 434 grpc_ssl_client_certificate_request_type client_certificate_request, 435 grpc_ssl_server_certificate_config *certificate_config) 436 437 grpc_ssl_server_credentials_options* grpc_ssl_server_credentials_create_options_using_config_fetcher( 438 grpc_ssl_client_certificate_request_type client_certificate_request, 439 grpc_ssl_server_certificate_config_callback cb, 440 void *user_data) 441 442 grpc_server_credentials *grpc_ssl_server_credentials_create_with_options( 443 grpc_ssl_server_credentials_options *options) 444 445 ctypedef struct grpc_ssl_pem_key_cert_pair: 446 const char *private_key 447 const char *certificate_chain "cert_chain" 448 449 ctypedef struct grpc_channel_credentials: 450 # We don't care about the internals (and in fact don't know them) 451 pass 452 453 ctypedef struct grpc_call_credentials: 454 # We don't care about the internals (and in fact don't know them) 455 pass 456 457 ctypedef struct grpc_ssl_session_cache: 458 # We don't care about the internals (and in fact don't know them) 459 pass 460 461 ctypedef struct verify_peer_options: 462 # We don't care about the internals (and in fact don't know them) 463 pass 464 465 ctypedef void (*grpc_ssl_roots_override_callback)(char **pem_root_certs) 466 467 grpc_ssl_session_cache *grpc_ssl_session_cache_create_lru(size_t capacity) 468 void grpc_ssl_session_cache_destroy(grpc_ssl_session_cache* cache) 469 470 void grpc_set_ssl_roots_override_callback( 471 grpc_ssl_roots_override_callback cb) nogil 472 473 grpc_channel_credentials *grpc_google_default_credentials_create() nogil 474 grpc_channel_credentials *grpc_ssl_credentials_create( 475 const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, 476 verify_peer_options *verify_options, void *reserved) nogil 477 grpc_channel_credentials *grpc_composite_channel_credentials_create( 478 grpc_channel_credentials *creds1, grpc_call_credentials *creds2, 479 void *reserved) nogil 480 void grpc_channel_credentials_release(grpc_channel_credentials *creds) nogil 481 482 grpc_call_credentials *grpc_composite_call_credentials_create( 483 grpc_call_credentials *creds1, grpc_call_credentials *creds2, 484 void *reserved) nogil 485 grpc_call_credentials *grpc_google_compute_engine_credentials_create( 486 void *reserved) nogil 487 grpc_call_credentials *grpc_service_account_jwt_access_credentials_create( 488 const char *json_key, 489 gpr_timespec token_lifetime, void *reserved) nogil 490 grpc_call_credentials *grpc_google_refresh_token_credentials_create( 491 const char *json_refresh_token, void *reserved) nogil 492 grpc_call_credentials *grpc_google_iam_credentials_create( 493 const char *authorization_token, const char *authority_selector, 494 void *reserved) nogil 495 void grpc_call_credentials_release(grpc_call_credentials *creds) nogil 496 497 grpc_channel *grpc_secure_channel_create( 498 grpc_channel_credentials *creds, const char *target, 499 const grpc_channel_args *args, void *reserved) nogil 500 501 ctypedef struct grpc_server_credentials: 502 # We don't care about the internals (and in fact don't know them) 503 pass 504 505 void grpc_server_credentials_release(grpc_server_credentials *creds) nogil 506 507 int grpc_server_add_secure_http2_port(grpc_server *server, const char *addr, 508 grpc_server_credentials *creds) nogil 509 510 grpc_call_error grpc_call_set_credentials(grpc_call *call, 511 grpc_call_credentials *creds) nogil 512 513 ctypedef struct grpc_auth_context: 514 # We don't care about the internals (and in fact don't know them) 515 pass 516 517 ctypedef struct grpc_auth_metadata_context: 518 const char *service_url 519 const char *method_name 520 const grpc_auth_context *channel_auth_context 521 522 ctypedef void (*grpc_credentials_plugin_metadata_cb)( 523 void *user_data, const grpc_metadata *creds_md, size_t num_creds_md, 524 grpc_status_code status, const char *error_details) 525 526 ctypedef struct grpc_metadata_credentials_plugin: 527 int (*get_metadata)( 528 void *state, grpc_auth_metadata_context context, 529 grpc_credentials_plugin_metadata_cb cb, void *user_data, 530 grpc_metadata creds_md[GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX], 531 size_t *num_creds_md, grpc_status_code *status, 532 const char **error_details) 533 void (*destroy)(void *state) 534 void *state 535 const char *type 536 537 grpc_call_credentials *grpc_metadata_credentials_create_from_plugin( 538 grpc_metadata_credentials_plugin plugin, void *reserved) nogil 539 540 ctypedef struct grpc_auth_property_iterator: 541 pass 542 543 ctypedef struct grpc_auth_property: 544 char *name 545 char *value 546 size_t value_length 547 548 grpc_auth_property *grpc_auth_property_iterator_next( 549 grpc_auth_property_iterator *it) 550 551 grpc_auth_property_iterator grpc_auth_context_property_iterator( 552 const grpc_auth_context *ctx) 553 554 grpc_auth_property_iterator grpc_auth_context_peer_identity( 555 const grpc_auth_context *ctx) 556 557 char *grpc_auth_context_peer_identity_property_name( 558 const grpc_auth_context *ctx) 559 560 grpc_auth_property_iterator grpc_auth_context_find_properties_by_name( 561 const grpc_auth_context *ctx, const char *name) 562 563 grpc_auth_context_peer_is_authenticated( 564 const grpc_auth_context *ctx) 565 566 grpc_auth_context *grpc_call_auth_context(grpc_call *call) 567 568 void grpc_auth_context_release(grpc_auth_context *context) 569 570cdef extern from "grpc/compression.h": 571 572 ctypedef enum grpc_compression_algorithm: 573 GRPC_COMPRESS_NONE 574 GRPC_COMPRESS_DEFLATE 575 GRPC_COMPRESS_GZIP 576 GRPC_COMPRESS_STREAM_GZIP 577 GRPC_COMPRESS_ALGORITHMS_COUNT 578 579 ctypedef enum grpc_compression_level: 580 GRPC_COMPRESS_LEVEL_NONE 581 GRPC_COMPRESS_LEVEL_LOW 582 GRPC_COMPRESS_LEVEL_MED 583 GRPC_COMPRESS_LEVEL_HIGH 584 GRPC_COMPRESS_LEVEL_COUNT 585 586 ctypedef struct grpc_compression_options: 587 uint32_t enabled_algorithms_bitset 588 589 int grpc_compression_algorithm_parse( 590 grpc_slice value, grpc_compression_algorithm *algorithm) nogil 591 int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm, 592 const char **name) nogil 593 grpc_compression_algorithm grpc_compression_algorithm_for_level( 594 grpc_compression_level level, uint32_t accepted_encodings) nogil 595 void grpc_compression_options_init(grpc_compression_options *opts) nogil 596 void grpc_compression_options_enable_algorithm( 597 grpc_compression_options *opts, 598 grpc_compression_algorithm algorithm) nogil 599 void grpc_compression_options_disable_algorithm( 600 grpc_compression_options *opts, 601 grpc_compression_algorithm algorithm) nogil 602 int grpc_compression_options_is_algorithm_enabled( 603 const grpc_compression_options *opts, 604 grpc_compression_algorithm algorithm) nogil 605