void OSCQueue::postMessage(OSCMessage message) { int count = 0, max = 5; while (m_buffer.getWriteSpace() == 0) { if (count == max) { std::cerr << "ERROR: OSCQueue::postMessage: OSC message queue is full and not clearing -- abandoning incoming message" << std::endl; return; } std::cerr << "WARNING: OSCQueue::postMessage: OSC message queue (capacity " << m_buffer.getSize() << " is full!" << std::endl; std::cerr << "Waiting for something to be processed" << std::endl; #ifdef _WIN32 Sleep(1); #else sleep(1); #endif count++; } OSCMessage *mp = new OSCMessage(message); m_buffer.write(&mp, 1); std::cerr << "OSCQueue::postMessage: Posted OSC message: target " << message.getTarget() << ", target data " << message.getTargetData() << ", method " << message.getMethod().toStdString() << std::endl; emit messagesAvailable(); }
HistoryMessagesPrepender::HistoryMessagesPrepender(QFuture<SortedMessages> messages, WebkitMessagesView *chatMessagesView, QObject *parent) : QObject{parent}, m_messages{std::move(messages)}, m_messagesView(chatMessagesView) { Q_ASSERT(m_messagesView); connect(m_messagesView, SIGNAL(destroyed()), this, SLOT(deleteLater())); auto futureWatcher = make_owned<QFutureWatcher<SortedMessages>>(this); connect(futureWatcher.get(), SIGNAL(finished()), this, SLOT(messagesAvailable())); futureWatcher->setFuture(m_messages); }
void MsgListModel::handleRowsInserted(const QModelIndex &parent, int start, int end) { checkPersistentIndex(); if (! parent.isValid()) return; Q_UNUSED(start); Q_UNUSED(end); TreeItemMsgList *newList = dynamic_cast<TreeItemMsgList *>(Model::realTreeItem(parent)); if (msgListPtr && msgListPtr == newList) { endInsertRows(); } if (waitingForMessages) { waitingForMessages = false; emit messagesAvailable(); } }