void CloseSubscriptionResponseHandler::handleResponse( const PubSubResponsePtr& m, const PubSubDataPtr& txn, const DuplexChannelPtr& channel) { switch (m->statuscode()) { case SUCCESS: if (m->has_responsebody()) { txn->getCallback()->operationComplete(m->responsebody()); } else { txn->getCallback()->operationComplete(ResponseBody()); } break; case SERVICE_DOWN: LOG4CXX_ERROR(logger, "Server responsed with SERVICE_DOWN for " << txn->getTxnId()); txn->getCallback()->operationFailed(ServiceDownException()); break; case CLIENT_ALREADY_SUBSCRIBED: case TOPIC_BUSY: txn->getCallback()->operationFailed(AlreadySubscribedException()); break; case CLIENT_NOT_SUBSCRIBED: txn->getCallback()->operationFailed(NotSubscribedException()); break; case NOT_RESPONSIBLE_FOR_TOPIC: redirectRequest(m, txn, channel); break; default: LOG4CXX_ERROR(logger, "Unexpected response " << m->statuscode() << " for " << txn->getTxnId()); txn->getCallback()->operationFailed(UnexpectedResponseException()); break; } }
void PublisherImpl::messageHandler(const PubSubResponsePtr& m, const PubSubDataPtr& txn) { switch (m->statuscode()) { case SUCCESS: if (m->has_responsebody()) { txn->getCallback()->operationComplete(m->responsebody()); } else { txn->getCallback()->operationComplete(ResponseBody()); } break; case SERVICE_DOWN: LOG4CXX_ERROR(logger, "Server responsed with SERVICE_DOWN for " << txn->getTxnId()); txn->getCallback()->operationFailed(ServiceDownException()); break; default: LOG4CXX_ERROR(logger, "Unexpected response " << m->statuscode() << " for " << txn->getTxnId()); txn->getCallback()->operationFailed(UnexpectedResponseException()); break; } }