コード例 #1
0
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();
}
コード例 #2
0
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);
}
コード例 #3
0
ファイル: MsgListModel.cpp プロジェクト: adamkudrna/trojita
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();
    }
}