--- a/controlpanelui/src/cpcategorymodel/src/cptaskexecutor.cpp Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-#include "cptaskexecutor.h"
-#include <QMutexLocker>
-#include <QDebug>
-#include <QtAlgorithms>
-#include <QPointer>
-
-static QPointer<CpTaskExecutor> g_instance;
-
-CpTaskExecutor *CpTaskExecutor::globalInstance()
-{
- if (!g_instance) {
- g_instance = new CpTaskExecutor();
- }
- return g_instance.data();
-}
-
-void CpTaskExecutor::destroyGlobalInstance()
-{
- delete g_instance.data();
-}
-
-CpTaskExecutor::CpTaskExecutor(QObject *parent /*=0*/)
-: QThread(parent), mStopped(false)
-{
-}
-
-CpTaskExecutor::~CpTaskExecutor()
-{
- stop();
-}
-
-bool CpTaskExecutor::runTask(CpTask *task,bool append /*= false*/)
-{
- if (mStopped) {
- if (isRunning()) {
- qDebug() << "thread in stopping process...can not run task.\r\n";
- return false;
- }
- mStopped = false;
- }
-
- if (task) {
- {
- QMutexLocker locker(&mMutex);
- if (append) {
- mTasks.append(task);
- }
- else {
- mTasks.insert(0,task);
- }
- }
-
- if (!isRunning()) {
- qDebug() << "isRunning() == false, call start()\r\n";
- start();
- }
- }
-
- return true;
-}
-
-void CpTaskExecutor::stop()
-{
- if (!mStopped && isRunning() ) {
- mStopped = true;
- removeTasks();
- wait(); //wait for finished
- }
-}
-
-void CpTaskExecutor::removeTasks()
-{
- QMutexLocker locker(&mMutex);
-
- QList<CpTask*>::const_iterator begin(mTasks.begin());
- QList<CpTask*>::const_iterator end(mTasks.end());
- for (; begin != end; ++begin) {
- if ((*begin)->autoDelete()) {
- delete (*begin);
- }
- }
-
- mTasks.clear();
-}
-
-void CpTaskExecutor::run()
-{
- while (!mStopped) {
- CpTask *task = 0;
- {
- QMutexLocker locker(&mMutex);
- if (mTasks.isEmpty()) {
- break;
- }
- task = mTasks.takeFirst();
- }
- try {
- task->execute(&mStopped);
- task->complete(&mStopped);
- }catch(...) {
- qDebug() << "excetion occur when running task\r\n";
- }
-
- if (task->autoDelete()) {
- delete task;
- }
- }
-}
-
-bool CpTaskExecutor::toFront(CpTask *task)
-{
- QMutexLocker locker(&mMutex);
- QList<CpTask*>::iterator foundIterator = ::qFind(mTasks.begin(),mTasks.end(),task);
- if (foundIterator == mTasks.end()) {
- return false;
- }
-
- mTasks.erase(foundIterator);
- mTasks.insert(0,task);
-
- return true;
-}
-
-//End of File