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;
}
}