From 175c8e44b92dd01cb79153d60a8bd69857dea0ff Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Tue, 15 Oct 2019 17:22:56 -0700 Subject: [PATCH] Cosmetic changes to increase readability --- .../grpc/_cython/_cygrpc/aio/server.pyx.pxi | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi index e64f746118a..1584d34cd8b 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi +++ b/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi @@ -98,22 +98,14 @@ loop): batch_operation_tag.event(c_event) -async def _handle_rpc(_AioServerState server_state, RPCState rpc_state, object loop): - # Finds the method handler (application logic) - cdef object method_handler = _find_method_handler( - rpc_state, - server_state.generic_handlers - ) - if method_handler.request_streaming or method_handler.response_streaming: - raise NotImplementedError() - +async def _handle_unary_unary_rpc(object method_handler, RPCState rpc_state, object loop): # Receives request message cdef tuple receive_ops = ( ReceiveMessageOperation(_EMPTY_FLAGS), ) await callback_start_batch(rpc_state, receive_ops, loop) - # Parses the request + # Deserializes the request message cdef bytes request_raw = receive_ops[0].message() cdef object request_message if method_handler.request_deserializer: @@ -121,8 +113,10 @@ async def _handle_rpc(_AioServerState server_state, RPCState rpc_state, object l else: request_message = request_raw - # Executes application logic & encodes response message + # Executes application logic cdef object response_message = await method_handler.unary_unary(request_message, _ServicerContextPlaceHolder()) + + # Serializes the response message cdef bytes response_raw if method_handler.response_serializer: response_raw = method_handler.response_serializer(response_message) @@ -139,6 +133,26 @@ async def _handle_rpc(_AioServerState server_state, RPCState rpc_state, object l await callback_start_batch(rpc_state, send_ops, loop) +async def _handle_rpc(_AioServerState server_state, RPCState rpc_state, object loop): + # Finds the method handler (application logic) + cdef object method_handler = _find_method_handler( + rpc_state, + server_state.generic_handlers + ) + if method_handler is None: + # TODO(lidiz) return unimplemented error to client side + raise NotImplementedError() + # TODO(lidiz) extend to all 4 types of RPC + if method_handler.request_streaming or method_handler.response_streaming: + raise NotImplementedError() + else: + await _handle_unary_unary_rpc( + method_handler, + rpc_state, + loop + ) + + async def _server_call_request_call(_AioServerState server_state, object loop): cdef grpc_call_error error cdef RPCState rpc_state = RPCState()