private void handleRequestAnswer()

in grpc/syneroex/src/main/java/deltix/ember/connector/grpc/syneroex/session/Session.java [428:474]


    private void handleRequestAnswer(RequestAnswer answer) {
        switch (answer.requestType()) {
            case CREATE_ORDER:
                listener.onCreateOrder((CreateOrdersRequest) answer.request(), (CreateOrdersResponse) answer.response(), answer);
                break;
            case CANCEL_ORDER:
                listener.onCancelOrder((CancelOrdersRequest) answer.request(), (CancelOrdersResponse) answer.response(), answer);
                break;
            case REPLACE_ORDER:
                listener.onReplaceOrder((ReplaceOrdersRequest) answer.request(), (ReplaceOrdersResponse) answer.response(), answer);
                break;
            case QUERY_ORDER:
                listener.onQueryOrder((OrderQueryRequest) answer.request(), (OrderQueryResponse) answer.response(), answer);
                break;
            case AUTHENTICATE:
                if (answer.isError()) {
                    updateStatus(SessionStatus.AUTH_REJECTED);
                    disconnect(answer.message());
                } else {
                    final AuthenticationResponse response = (AuthenticationResponse) answer.response();
                    if (response.getSuccess()) {
                        // update status
                        updateStatus(SessionStatus.AUTH_ACKNOWLEDGED);
                        // subscribe for order events
                        subscribe();
                    } else {
                        updateStatus(SessionStatus.AUTH_REJECTED);
                        disconnect(answer.message());
                    }
                }
                break;
            case SUBSCRIBE:
                if (answer.isError()) {
                    updateStatus(SessionStatus.SUBSCRIBE_REJECTED);
                    disconnect(answer.message());
                }
                break;
            case UNSUBSCRIBE:
                if (answer.isError()) {
                    updateStatus(SessionStatus.UNSUBSCRIBE_REJECTED);
                    disconnect(answer.message());
                } else {
                    disconnect("Unsubscribe Ack");
                }
                break;
        }
    }