TaskData TasksQueue::getTaskForProcessing() { QMutexLocker locker( &m_mutex ); if ( m_readyTasksCollection.empty() ) return TaskData(); TaskData taskData( m_readyTasksCollection.begin()->second ); m_readyTasksCollection.erase( m_readyTasksCollection.begin() ); return taskData; } // TasksQueue::getTaskForProcessing
QString TasksQueue::pushDelayedTask( RunnableFunction _function, const Tools::Core::Time::Milliseconds _delay ) { QMutexLocker locker( &m_mutex ); const QString taskId( QUuid::createUuid().toString() ); TaskData taskData( _function, _delay ); taskData.m_lastStart = Tools::Core::Time::currentTime(); m_delayedTasksCollection.insert( std::make_pair( taskId, taskData ) ); return taskId; } // TasksQueue::pushDelayedTask
bool CPing::Start( const TStringVector& remoteHosts , const Int32 maxPings /* = 0 */ , const UInt32 bytesToSend /* = 32 */ , const UInt32 timeout /* = 1000 */ , const UInt32 minimalPingDelta /* = 500 */ ) {GUCEF_TRACE; if ( !m_isActive && ( remoteHosts.size() > 0 ) ) { m_remoteHosts = remoteHosts; m_maxPings = maxPings; m_timeout = timeout; m_bytesToSend = bytesToSend; m_minimalPingDelta = minimalPingDelta; CPingTaskConsumer::CPingTaskData taskData( remoteHosts, maxPings, bytesToSend, timeout, minimalPingDelta ); return CORE::CCoreGlobal::Instance()->GetTaskManager().StartTask( m_pingTaskConsumer , &taskData ); } return false; }