本文整理汇总了C++中bytesAvailable函数的典型用法代码示例。如果您正苦于以下问题:C++ bytesAvailable函数的具体用法?C++ bytesAvailable怎么用?C++ bytesAvailable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bytesAvailable函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: atEnd
bool SerialDevice::atEnd() const
{
if(!isOpen())
{
return false;
}
return !bytesAvailable();
}
开发者ID:omniacreator,项目名称:omniacreator-plugin,代码行数:9,代码来源:serialdevice.cpp
示例2: readyRead
void CG2Node::OnRead()
{
if( !Network.m_pSection.tryLock(50) )
{
emit readyRead(); // it is a queued connection, lets requeue the missed signal
return;
}
//qDebug() << "CG2Node::OnRead";
if( m_nState == nsHandshaking )
{
if( peek(bytesAvailable()).indexOf("\r\n\r\n") != -1 )
{
if( m_bInitiated )
{
ParseOutgoingHandshake();
}
else
{
ParseIncomingHandshake();
}
}
}
else if ( m_nState == nsConnected )
{
G2Packet* pPacket = 0;
try
{
while( (pPacket = G2Packet::ReadBuffer(GetInputBuffer())) )
{
m_tLastPacketIn = time(0);
m_nPacketsIn++;
OnPacket(pPacket);
pPacket->Release();
}
}
catch(...)
{
if( pPacket )
{
qDebug() << pPacket->ToHex() << "\n" << pPacket->ToASCII();
pPacket->Release();
}
qDebug() << "Packet error - " << m_oAddress.toString().toAscii();
m_nState = nsClosing;
emit NodeStateChanged();
deleteLater();
}
}
Network.m_pSection.unlock();
}
开发者ID:geekt,项目名称:quazaa,代码行数:56,代码来源:g2node.cpp
示例3: socketIn
void AGChatSocket::readMessage()
{
QDataStream socketIn(this);
socketIn.setVersion(QDataStream::Qt_5_0);
while (1)
{
qDebug() <<this->bytesAvailable()<< "Signal2\n";
quint16 messageLength= 0;
if (bytesAvailable() < sizeof(quint16)) return;
socketIn >> messageLength;
if (bytesAvailable() < messageLength) return;
QString temp;
socketIn >> temp;
qDebug() << id << ": message received: " << temp << endl;
emit readFinished(id, temp);
}
}
开发者ID:Hubertzhang,项目名称:AsteriatedGUI,代码行数:19,代码来源:chatserver.cpp
示例4: lock
void QUsbHid::onHidData(void* p, int len)
{
QMutexLocker lock(mutex);
{
// got data
readBuffer.append((char*)p,len);
if (bytesAvailable() > 0)
emit readyRead();
}
}
开发者ID:motion55,项目名称:etootle-flight,代码行数:10,代码来源:qusbhid_unix.cpp
示例5: dataLengthForCurrentDataType
int Connection::dataLengthForCurrentDataType()
{
if (bytesAvailable() <= 0 || readDataIntoBuffer() <= 0 || !buffer.endsWith(SeparatorToken))
return 0;
buffer.chop(1);
int number = buffer.toInt();
buffer.clear();
return number;
}
开发者ID:newdebug,项目名称:NewDebug,代码行数:10,代码来源:connection.cpp
示例6: ntohl
void eCIClient::dataAvailable()
{
if (!receivedCmd)
{
if ((unsigned int)bytesAvailable() < sizeof(ciplus_header)) return;
if ((unsigned int)readBlock((char*)&header, sizeof(ciplus_header)) < sizeof(ciplus_header)) return;
header.magic = ntohl(header.magic);
header.cmd = ntohl(header.cmd);
header.size = ntohl(header.size);
if (header.magic != CIPLUSHELPER_MAGIC)
{
if (parent) parent->connectionLost();
return;
}
receivedCmd = header.cmd;
receivedCmdSize = header.size;
}
if (receivedCmdSize)
{
if ((unsigned int)bytesAvailable() < receivedCmdSize) return;
if (receivedCmdSize) delete [] receivedData;
receivedData = new unsigned char[receivedCmdSize];
if ((unsigned int)readBlock((char*)receivedData, receivedCmdSize) < receivedCmdSize) return;
ciplus_message *message = (ciplus_message *)receivedData;
switch (header.cmd)
{
default:
{
unsigned char *data = &receivedData[sizeof(ciplus_message)];
parent->getSlot(ntohl(message->slot))->send(data, ntohl(message->size));
}
break;
case eCIClient::CIPLUSHELPER_STATE_CHANGED:
{
eDVBCISession::setAction(ntohl(message->session), receivedData[sizeof(ciplus_message)]);
}
break;
}
receivedCmdSize = 0;
receivedCmd = 0;
}
}
开发者ID:trunca,项目名称:enigma2-openpli-fulan,代码行数:43,代码来源:dvbci.cpp
示例7: bytesAvailable
qint64 CustomNetworkReply::readData (char *data, qint64 maxSize)
{
if (Offset_ >= Content_.size ())
return -1;
qint64 number = std::min (maxSize, bytesAvailable ());
std::memcpy (data, Content_.constData () + Offset_, number);
Offset_ += number;
return number;
}
开发者ID:Kalarel,项目名称:leechcraft,代码行数:11,代码来源:customnetworkreply.cpp
示例8: while
void TcpSocket::dataReceived()
{
while(this->bytesAvailable() > 0) //检查字节数
{
char buf[1024];
int length = bytesAvailable();
this->read(buf, length); //读取接收
QString message = buf;
emit updateClients(message, length); //发射信号
}
}
开发者ID:Soler-he,项目名称:QtChatServer,代码行数:11,代码来源:tcpsocket.cpp
示例9: while
void TcpSocket::dataReceived()
{
while(bytesAvailable()>0)
{
QByteArray jsonData=readAll();
jsonFromClient2Server.setJSONData(jsonData);
jsonFromClient2Server.converJSON2Data();
protocolFromClient2Server= jsonFromClient2Server.getProtocolFromClient2Server();
emit updateClients(protocolFromClient2Server);
}
}
开发者ID:guyuhu,项目名称:Robot,代码行数:11,代码来源:tcpsocket.cpp
示例10: while
void TcpClient::onReadyRead()
{
auto socket = m_socket;
if (socket != nullptr)
{
while(socket->bytesAvailable() > 0)
{
auto const size = socket->read(reinterpret_cast<char*>(m_buffer), RxBufferSize);
read(m_buffer, m_buffer + size, size);
}
}
}
开发者ID:DouglasHeriot,项目名称:ember-plus,代码行数:12,代码来源:TcpClient.cpp
示例11: socketIn
void AGSocket::readMessage()
{
QDataStream socketIn(this);
socketIn.setVersion(QDataStream::Qt_5_0);
while (1)
{
qDebug() <<this->bytesAvailable()<< "Signal1\n";
int messageLength= 0;
if (bytesAvailable() < (int)sizeof(int)) return;
socketIn >> messageLength;
if (bytesAvailable() < (int)sizeof(int)*messageLength) return;
std::vector<int> temp;
for (int i = 0; i<messageLength; i++) {
int tempMessage;
socketIn >>tempMessage;
temp.push_back(tempMessage);
}
emit readFinished(id, temp);
}
}
开发者ID:Hubertzhang,项目名称:AsteriatedGUI,代码行数:21,代码来源:agserver.cpp
示例12: QTime
bool DeviceMuxer::waitForReadyRead(channel_t channel, int msecs)
{
QTime* timer = (msecs < 0) ? 0 : new QTime();
if (timer)
timer->start();
_readyReadEmitted[channel] = false;
// Wait until we have some more data to read
while ( !_readyReadEmitted[channel] && bytesAvailable(channel) <= 0 &&
(!timer || (timer->elapsed() < msecs)) )
{
// How much time left?
int remaining = timer ? msecs - timer->elapsed() : -1;
if (timer && remaining < 0)
remaining = 0;
QCoreApplication::processEvents(QEventLoop::AllEvents, remaining);
QThread::yieldCurrentThread();
}
return _readyReadEmitted[channel] || bytesAvailable(channel) > 0;
}
开发者ID:wxdublin,项目名称:insight-vmi,代码行数:21,代码来源:devicemuxer.cpp
示例13: procFinished
/*!
Do some clean up, and be sure that all output has been read.
*/
void MyProcess::procFinished() {
#if !USE_TEMP_FILE
if ( bytesAvailable() > 0 ) readStdOut();
#else
timer.stop();
if ( temp_file.bytesAvailable() > 0 ) readTmpFile();
temp_file.close();
#endif
}
开发者ID:jinjianxin,项目名称:qt-opensource,代码行数:15,代码来源:myprocess.cpp
示例14: dataLengthForCurrentDataType
bool Connection::hasEnoughData()
{
if (numBytesForCurrentDataType <= 0)
numBytesForCurrentDataType = dataLengthForCurrentDataType();
if (bytesAvailable() < numBytesForCurrentDataType || numBytesForCurrentDataType <= 0)
{
return false;
}
return true;
}
开发者ID:newdebug,项目名称:NewDebug,代码行数:12,代码来源:connection.cpp
示例15: while
void TrkDevice::tryTrkRead()
{
#ifdef Q_OS_WIN
const DWORD BUFFERSIZE = 1024;
char buffer[BUFFERSIZE];
DWORD charsRead;
DWORD totalCharsRead = 0;
while (TryReadFile(d->hdevice, buffer, BUFFERSIZE, &charsRead, NULL)) {
totalCharsRead += charsRead;
d->trkReadBuffer.append(buffer, charsRead);
if (isValidTrkResult(d->trkReadBuffer, d->serialFrame))
break;
}
if (verbose() && totalCharsRead)
logMessage("Read" + d->trkReadBuffer.toHex());
if (!totalCharsRead)
return;
const ushort len = trk::isValidTrkResult(d->trkReadBuffer, d->serialFrame);
if (!len) {
const QString msg = QString::fromLatin1("Partial message: %1").arg(stringFromArray(d->trkReadBuffer));
emitError(msg);
return;
}
#else
const int size = bytesAvailable(d->file.handle());
if (!size)
return;
const QByteArray data = d->file.read(size);
if (verbose())
logMessage("READ " + data.toHex());
d->trkReadBuffer.append(data);
const ushort len = trk::isValidTrkResult(d->trkReadBuffer, d->serialFrame);
if (!len) {
if (d->trkReadBuffer.size() > 10) {
const QString msg = QString::fromLatin1("Unable to extract message from '%1' '%2'").
arg(QLatin1String(d->trkReadBuffer.toHex())).arg(QString::fromAscii(d->trkReadBuffer));
emitError(msg);
}
return;
}
#endif // Q_OS_WIN
trk::TrkResult r;
QByteArray rawData;
while (extractResult(&d->trkReadBuffer, d->serialFrame, &r, &rawData)) {
if (verbose())
logMessage("Read TrkResult " + r.data.toHex());
emit messageReceived(r);
if (!rawData.isEmpty())
emit rawDataReceived(rawData);
}
}
开发者ID:TheProjecter,项目名称:project-qtcreator,代码行数:52,代码来源:trkolddevice.cpp
示例16: abort
void Connection::processReadyRead()
{
if (state == WaitingForGreeting) {
if (!readProtocolHeader())
return;
if (currentDataType != Greeting) {
abort();
return;
}
state = ReadingGreeting;
}
if (state == ReadingGreeting) {
if (!hasEnoughData())
return;
buffer = read(numBytesForCurrentDataType);
if (buffer.size() != numBytesForCurrentDataType) {
abort();
return;
}
username = QString(buffer) + '@' + peerAddress().toString() + ':'
+ QString::number(peerPort());
currentDataType = Undefined;
numBytesForCurrentDataType = 0;
buffer.clear();
if (!isValid()) {
abort();
return;
}
if (!isGreetingMessageSent)
sendGreetingMessage();
pingTimer.start();
pongTime.start();
state = ReadyForUse;
emit readyForUse();
}
do {
if (currentDataType == Undefined) {
if (!readProtocolHeader())
return;
}
if (!hasEnoughData())
return;
processData();
} while (bytesAvailable() > 0);
}
开发者ID:TanyaZavyalova,项目名称:chatCS,代码行数:52,代码来源:connection.cpp
示例17: VLRException
void Socket::clearInputBuffer() {
if (!connected_) {
throw VLRException("Not connected.");
}
int64_t val = bytesAvailable();
if (val > 0) {
uint8_t* buffer = new uint8_t[val];
ssize_t dummy = read(socket_, buffer, val);
delete[] buffer;
}
}
开发者ID:Forrest-Z,项目名称:stanford_self_driving_car_code,代码行数:13,代码来源:vlrSocket.cpp
示例18: writeBlock
long FQTermLocalSocket::writeBlock( const QByteArray &data )
{
int count = shell_process_->write(data);
//char c;
// shell_process_->getChar(&c);
// shell_process_->ungetChar(c);
if (bytesAvailable())
{
emit readyRead();
}
return count;
}
开发者ID:mytbk,项目名称:fqterm,代码行数:13,代码来源:fqterm_local_socket.cpp
示例19: in
void ClientSocket::readMessage()
{
QDataStream in(this);
quint16 nextBlockSize;
QString message;
in.setVersion(QDataStream::Qt_4_7);
while(1)
{
if(bytesAvailable() < (int)sizeof(quint16)) return;
in >> nextBlockSize;
if(bytesAvailable() < nextBlockSize) return;
//如果没有得到全部的数据,则返回,继续接收数据
in >> message;
emit getMessage(id,message);
}
//将接收到的数据存放到变量中
}
开发者ID:dreamStar,项目名称:Asteriated_Grail,代码行数:22,代码来源:Server.cpp
示例20: Q_D
void QHttpSocketEngine::setReadNotificationEnabled(bool enable)
{
Q_D(QHttpSocketEngine);
if (d->readNotificationEnabled == enable)
return;
d->readNotificationEnabled = enable;
if (enable) {
// Enabling read notification can trigger a notification.
if (bytesAvailable())
slotSocketReadNotification();
}
}
开发者ID:2011fuzhou,项目名称:vlc-2.1.0.subproject-2010,代码行数:13,代码来源:qhttpsocketengine.cpp
注:本文中的bytesAvailable函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论