void do_xevents(void) { register TScreen *screen = &term->screen; if (XtAppPending(app_con) || #if defined(VMS) || defined(__VMS) screen->display->qlen > 0 #else GetBytesAvailable (ConnectionNumber(screen->display)) > 0 #endif ) xevents(); }
void cDomainSocket::ReadAll(std::string& sBuffer) { sBuffer.clear(); const size_t nBytesToRead = GetBytesToRead(); LOG<<"cDomainSocket::ReadAll nBytesToRead="<<nBytesToRead<<std::endl; std::vector<uint8_t> buffer; buffer.clear(); buffer.reserve(1024); const size_t nDataSize = 512; uint8_t data[nDataSize]; while (IsOpen()) { const size_t nBytesAvailable = GetBytesAvailable(); if (nBytesAvailable == 0) { //LOG<<"cDomainSocket::ReadAll No bytes available, breaking"<<std::endl; break; } const size_t nBytesRead = Read(data, nDataSize); if (nBytesRead == 0) { LOG<<"cDomainSocket::ReadAll No bytes read, breaking"<<std::endl; break; } LOG<<"cDomainSocket::ReadAll "<<nBytesRead<<" bytes read"<<std::endl; const size_t nBufferSize = buffer.size(); // Resize the read buffer buffer.resize(nBufferSize + nBytesRead); // Append the data memcpy(buffer.data() + nBufferSize, data, nBytesRead); }; if (buffer.empty()) { LOG<<"cDomainSocket::ReadAll No data received, returning"<<std::endl; return; } sBuffer = (const char*)buffer.data(); LOG<<"cDomainSocket::ReadAll Received \""<<sBuffer<<"\""<<std::endl; }