Example #1
0
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();
}
Example #2
0
      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;
      }