本文整理汇总了C++中NetworkOperationIterator::setResponse方法的典型用法代码示例。如果您正苦于以下问题:C++ NetworkOperationIterator::setResponse方法的具体用法?C++ NetworkOperationIterator::setResponse怎么用?C++ NetworkOperationIterator::setResponse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NetworkOperationIterator
的用法示例。
在下文中一共展示了NetworkOperationIterator::setResponse方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: shutdown
void NetworkInterfaceMock::shutdown() {
invariant(!inShutdown());
stdx::unique_lock<stdx::mutex> lk(_mutex);
invariant(_hasStarted);
_inShutdown.store(true);
NetworkOperationList todo;
todo.splice(todo.end(), _scheduled);
todo.splice(todo.end(), _unscheduled);
todo.splice(todo.end(), _processing);
todo.splice(todo.end(), _blackHoled);
const Date_t now = _now_inlock();
_waitingToRunMask |= kExecutorThread; // Prevents network thread from scheduling.
lk.unlock();
for (NetworkOperationIterator iter = todo.begin(); iter != todo.end(); ++iter) {
iter->setResponse(
now, {ErrorCodes::ShutdownInProgress, "Shutting down mock network", Milliseconds(0)});
iter->finishResponse();
}
lk.lock();
invariant(_currentlyRunning == kExecutorThread);
_currentlyRunning = kNoThread;
_waitingToRunMask = kNetworkThread;
_shouldWakeNetworkCondition.notify_one();
}
示例2: scheduleResponse
void NetworkInterfaceMock::scheduleResponse(NetworkOperationIterator noi,
Date_t when,
const TaskExecutor::ResponseStatus& response) {
stdx::lock_guard<stdx::mutex> lk(_mutex);
invariant(_currentlyRunning == kNetworkThread);
NetworkOperationIterator insertBefore = _scheduled.begin();
while ((insertBefore != _scheduled.end()) && (insertBefore->getResponseDate() <= when)) {
++insertBefore;
}
noi->setResponse(when, response);
_scheduled.splice(insertBefore, _processing, noi);
}
示例3: scheduleResponse
void NetworkInterfaceMock::scheduleResponse(NetworkOperationIterator noi,
Date_t when,
const ResponseStatus& response) {
stdx::lock_guard<stdx::mutex> lk(_mutex);
invariant(_currentlyRunning == kNetworkThread);
NetworkOperationIterator insertBefore = _scheduled.begin();
while ((insertBefore != _scheduled.end()) && (insertBefore->getResponseDate() <= when)) {
++insertBefore;
}
// If no RemoteCommandResponse was returned (for example, on a simulated network error), then
// do not attempt to run the metadata hook, since there is no returned metadata.
if (_metadataHook && response.isOK()) {
_metadataHook->readReplyMetadata(noi->getRequest().target, response.metadata);
}
noi->setResponse(when, response);
_scheduled.splice(insertBefore, _processing, noi);
}