@Override public void updateState() { // Update the IO state if necessary if (getMessage() == null && getConnection().getInboundWay().isAvailable()) { setMessage(getMessages().peek()); } super.updateState(); }
@Override public void onMessageCompleted(boolean endDetected) throws IOException { Response message = getMessage(); if (message != null) { getMessages().remove(message); super.onMessageCompleted(endDetected); } }
@Override public void onError(Status status) { for (Response rsp : getMessages()) { if (rsp != getMessage()) { getMessages().remove(rsp); getHelper().onOutboundError(status, rsp); } } super.onError(status); }
@Override public void onTimeOut() { for (Response rsp : getMessages()) { if (rsp != getMessage()) { getMessages().remove(rsp); getHelper().onOutboundError(Status.CONNECTOR_ERROR_COMMUNICATION, rsp); } } super.onTimeOut(); }
@Override public void onHeadersCompleted() throws IOException { Response message = getMessage(); if (message != null) { Request request = message.getRequest(); if (request.isExpectingResponse()) { Queue<Response> inboundMessages = ((HttpClientInboundWay) getConnection().getInboundWay()).getMessages(); inboundMessages.add(message); getConnection().getInboundWay().setMessageState(MessageState.START); } } super.onHeadersCompleted(); }
@Override public void clear() { super.clear(); this.messages.clear(); }