本文整理汇总了C++中IOBuffer::ReadFromStdio方法的典型用法代码示例。如果您正苦于以下问题:C++ IOBuffer::ReadFromStdio方法的具体用法?C++ IOBuffer::ReadFromStdio怎么用?C++ IOBuffer::ReadFromStdio使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOBuffer
的用法示例。
在下文中一共展示了IOBuffer::ReadFromStdio方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnEvent
bool StdioCarrier::OnEvent(select_event &event) {
int32_t recvAmount = 0;
//3. Do the I/O
switch (event.type) {
case SET_READ:
{
IOBuffer *pInputBuffer = _pProtocol->GetInputBuffer();
assert(pInputBuffer != NULL);
if (!pInputBuffer->ReadFromStdio(_inboundFd,
FD_READ_CHUNK, recvAmount)) {
FATAL("Unable to read data");
return false;
}
return _pProtocol->SignalInputData(recvAmount);
}
case SET_WRITE:
{
IOBuffer *pOutputBuffer = NULL;
while ((pOutputBuffer = _pProtocol->GetOutputBuffer()) != NULL) {
if (!pOutputBuffer->WriteToStdio(_outboundFd,
FD_WRITE_CHUNK)) {
FATAL("Unable to send data");
IOHandlerManager::EnqueueForDelete(this);
return false;
}
if (GETAVAILABLEBYTESCOUNT(*pOutputBuffer) > 0) {
ENABLE_WRITE_DATA;
break;
}
}
if (pOutputBuffer == NULL) {
DISABLE_WRITE_DATA;
}
return true;
}
default:
{
ASSERT("Invalid state: %hhu", event.type);
return false;
}
}
}