| GRPC Core
    0.10.0.0
    | 
#include "src/core/surface/server.h"#include <stdlib.h>#include <string.h>#include <grpc/support/alloc.h>#include <grpc/support/log.h>#include <grpc/support/string_util.h>#include <grpc/support/useful.h>#include "src/core/channel/census_filter.h"#include "src/core/channel/channel_args.h"#include "src/core/channel/connected_channel.h"#include "src/core/iomgr/iomgr.h"#include "src/core/support/stack_lockfree.h"#include "src/core/surface/call.h"#include "src/core/surface/channel.h"#include "src/core/surface/completion_queue.h"#include "src/core/surface/init.h"#include "src/core/transport/metadata.h"| Data Structures | |
| struct | listener | 
| struct | call_link | 
| struct | requested_call | 
| struct | channel_registered_method | 
| struct | channel_data | 
| struct | shutdown_tag | 
| struct | call_data | 
| struct | request_matcher | 
| struct | registered_method | 
| struct | channel_broadcaster | 
| struct | grpc_server | 
| struct | shutdown_cleanup_args | 
| struct | request_killer | 
| Macros | |
| #define | SERVER_FROM_CALL_ELEM(elem) (((channel_data *)(elem)->channel_data)->server) | 
| Typedefs | |
| typedef struct listener | listener | 
| typedef struct call_data | call_data | 
| typedef struct channel_data | channel_data | 
| typedef struct registered_method | registered_method | 
| typedef struct requested_call | requested_call | 
| typedef struct channel_registered_method | channel_registered_method | 
| typedef struct shutdown_tag | shutdown_tag | 
| typedef struct request_matcher | request_matcher | 
| Enumerations | |
| enum | requested_call_type { BATCH_CALL, REGISTERED_CALL } | 
| enum | call_state { CALL_CREATED, CALL_WAITING_FOR_SEND, CALL_WAITING_FOR_CONFIG, CALL_WAITING_FOR_PICK, CALL_WAITING_FOR_CALL, CALL_ACTIVE, CALL_CANCELLED, NOT_STARTED, PENDING, ACTIVATED, ZOMBIED } | 
| Functions | |
| void | grpc_server_register_completion_queue (grpc_server *server, grpc_completion_queue *cq) | 
| Register a completion queue with the server.  More... | |
| grpc_server * | grpc_server_create_from_filters (const grpc_channel_filter **filters, size_t filter_count, const grpc_channel_args *args) | 
| void * | grpc_server_register_method (grpc_server *server, const char *method, const char *host) | 
| Registers a method in the server.  More... | |
| void | grpc_server_start (grpc_server *server) | 
| Start a server - tells all listeners to start listening.  More... | |
| void | grpc_server_setup_transport (grpc_server *s, grpc_transport *transport, grpc_channel_filter const **extra_filters, size_t num_extra_filters, grpc_mdctx *mdctx, const grpc_channel_args *args) | 
| void | grpc_server_shutdown_and_notify (grpc_server *server, grpc_completion_queue *cq, void *tag) | 
| Begin shutting down a server.  More... | |
| void | grpc_server_listener_destroy_done (void *s) | 
| void | grpc_server_cancel_all_calls (grpc_server *server) | 
| Cancel all in-progress calls.  More... | |
| void | grpc_server_destroy (grpc_server *server) | 
| Destroy a server.  More... | |
| void | grpc_server_add_listener (grpc_server *server, void *arg, void(*start)(grpc_server *server, void *arg, grpc_pollset **pollsets, size_t pollset_count), void(*destroy)(grpc_server *server, void *arg)) | 
| grpc_call_error | grpc_server_request_call (grpc_server *server, grpc_call **call, grpc_call_details *details, grpc_metadata_array *initial_metadata, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag) | 
| Request notification of a new call.  More... | |
| grpc_call_error | grpc_server_request_registered_call (grpc_server *server, void *rm, grpc_call **call, gpr_timespec *deadline, grpc_metadata_array *initial_metadata, grpc_byte_buffer **optional_payload, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag) | 
| Request notification of a new pre-registered call.  More... | |
| const grpc_channel_args * | grpc_server_get_channel_args (grpc_server *server) | 
| int | grpc_server_has_open_connections (grpc_server *server) | 
| #define SERVER_FROM_CALL_ELEM | ( | elem | ) | (((channel_data *)(elem)->channel_data)->server) | 
| typedef struct channel_data channel_data | 
| typedef struct channel_registered_method channel_registered_method | 
| typedef struct registered_method registered_method | 
| typedef struct request_matcher request_matcher | 
| typedef struct requested_call requested_call | 
| typedef struct shutdown_tag shutdown_tag | 
| enum call_state | 
| enum requested_call_type | 
| void grpc_server_add_listener | ( | grpc_server * | server, | 
| void * | arg, | ||
| void(*)(grpc_server *server, void *arg, grpc_pollset **pollsets, size_t pollset_count) | start, | ||
| void(*)(grpc_server *server, void *arg) | destroy | ||
| ) | 
| void grpc_server_cancel_all_calls | ( | grpc_server * | server | ) | 
Cancel all in-progress calls.
Only usable after shutdown.
| grpc_server* grpc_server_create_from_filters | ( | const grpc_channel_filter ** | filters, | 
| size_t | filter_count, | ||
| const grpc_channel_args * | args | ||
| ) | 
| void grpc_server_destroy | ( | grpc_server * | server | ) | 
Destroy a server.
Shutdown must have completed beforehand (i.e. all tags generated by grpc_server_shutdown_and_notify must have been received, and at least one call to grpc_server_shutdown_and_notify must have been made).
| const grpc_channel_args* grpc_server_get_channel_args | ( | grpc_server * | server | ) | 
| int grpc_server_has_open_connections | ( | grpc_server * | server | ) | 
| void grpc_server_listener_destroy_done | ( | void * | s | ) | 
| void grpc_server_register_completion_queue | ( | grpc_server * | server, | 
| grpc_completion_queue * | cq | ||
| ) | 
Register a completion queue with the server.
Must be done for any notification completion queue that is passed to grpc_server_request_*_call and to grpc_server_shutdown_and_notify. Must be performed prior to grpc_server_start.
| void* grpc_server_register_method | ( | grpc_server * | server, | 
| const char * | method, | ||
| const char * | host | ||
| ) | 
Registers a method in the server.
Methods to this (host, method) pair will not be reported by grpc_server_request_call, but instead be reported by grpc_server_request_registered_call when passed the appropriate registered_method (as returned by this function). Must be called before grpc_server_start. Returns NULL on failure.
| grpc_call_error grpc_server_request_call | ( | grpc_server * | server, | 
| grpc_call ** | call, | ||
| grpc_call_details * | details, | ||
| grpc_metadata_array * | request_metadata, | ||
| grpc_completion_queue * | cq_bound_to_call, | ||
| grpc_completion_queue * | cq_for_notification, | ||
| void * | tag_new | ||
| ) | 
Request notification of a new call.
'cq_for_notification' must have been registered to the server via grpc_server_register_completion_queue.
| grpc_call_error grpc_server_request_registered_call | ( | grpc_server * | server, | 
| void * | registered_method, | ||
| grpc_call ** | call, | ||
| gpr_timespec * | deadline, | ||
| grpc_metadata_array * | request_metadata, | ||
| grpc_byte_buffer ** | optional_payload, | ||
| grpc_completion_queue * | cq_bound_to_call, | ||
| grpc_completion_queue * | cq_for_notification, | ||
| void * | tag_new | ||
| ) | 
Request notification of a new pre-registered call.
'cq_for_notification' must have been registered to the server via grpc_server_register_completion_queue.
| void grpc_server_setup_transport | ( | grpc_server * | s, | 
| grpc_transport * | transport, | ||
| grpc_channel_filter const ** | extra_filters, | ||
| size_t | num_extra_filters, | ||
| grpc_mdctx * | mdctx, | ||
| const grpc_channel_args * | args | ||
| ) | 
| void grpc_server_shutdown_and_notify | ( | grpc_server * | server, | 
| grpc_completion_queue * | cq, | ||
| void * | tag | ||
| ) | 
Begin shutting down a server.
After completion, no new calls or connections will be admitted. Existing calls will be allowed to complete. Send a GRPC_OP_COMPLETE event when there are no more calls being serviced. Shutdown is idempotent, and all tags will be notified at once if multiple grpc_server_shutdown_and_notify calls are made. 'cq' must have been registered to this server via grpc_server_register_completion_queue.
| void grpc_server_start | ( | grpc_server * | server | ) | 
Start a server - tells all listeners to start listening.
 1.8.6
 1.8.6