本文整理汇总了C++中Controller::ErrorCode方法的典型用法代码示例。如果您正苦于以下问题:C++ Controller::ErrorCode方法的具体用法?C++ Controller::ErrorCode怎么用?C++ Controller::ErrorCode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Controller
的用法示例。
在下文中一共展示了Controller::ErrorCode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Run
void SubDone::Run() {
Controller* main_cntl = NULL;
const int rc = bthread_id_lock(_cid, (void**)&main_cntl);
if (rc != 0) {
// _cid must be valid because schan does not dtor before cancelling
// all sub calls.
LOG(ERROR) << "Fail to lock correlation_id="
<< _cid.value << ": " << berror(rc);
return;
}
// NOTE: Copying gettable-but-settable fields which are generally set
// during the RPC to reflect details.
main_cntl->_remote_side = _cntl._remote_side;
// connection_type may be changed during CallMethod.
main_cntl->set_connection_type(_cntl.connection_type());
Resource r;
r.response = _cntl._response;
r.sub_done = this;
if (!_owner->PushFree(r)) {
return;
}
const int saved_error = main_cntl->ErrorCode();
if (_cntl.Failed()) {
if (_cntl.ErrorCode() == ENODATA || _cntl.ErrorCode() == EHOSTDOWN) {
// LB could not find a server.
Socket::SetFailed(_peer_id); // trigger HC.
}
main_cntl->SetFailed(_cntl._error_text);
main_cntl->_error_code = _cntl._error_code;
} else {
if (_cntl._response != main_cntl->_response) {
main_cntl->_response->GetReflection()->Swap(
main_cntl->_response, _cntl._response);
}
}
const Controller::CompletionInfo info = { _cid, true };
main_cntl->OnVersionedRPCReturned(info, false, saved_error);
}