controlpanelui/src/inc/cptaskexecutor.h
branchRCL_3
changeset 14 5f281e37a2f5
parent 13 90fe62538f66
--- a/controlpanelui/src/inc/cptaskexecutor.h	Tue Aug 31 15:15:28 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +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:  
-*
-*/
-#ifndef CPTASKEXECUTOR_H
-#define CPTASKEXECUTOR_H
-
-#include <cpcategoryglobal.h>
-#include <QThread>
-#include <QList>
-#include <QMutex>
-
-class CpTask
-{
-public:
-    explicit CpTask(bool autoDelete = true) 
-    : mAutoDelete(autoDelete)
-    {
-    }
-
-    virtual ~CpTask()
-    {
-    }
-
-    bool autoDelete() const 
-    {
-        return mAutoDelete;
-    }
-
-    virtual void execute(volatile bool *stopped)
-    {
-        Q_UNUSED(stopped);
-    }
-
-    virtual void complete(volatile bool *stopped)
-    {
-        Q_UNUSED(stopped);
-    }
-
-private:
-    bool mAutoDelete;
-};
-
-class CP_CATEGORY_EXPORT CpTaskExecutor : public QThread
-{
-    Q_OBJECT
-public:
-    explicit CpTaskExecutor(QObject *parent = 0);
-
-    virtual ~CpTaskExecutor();
-    
-    /*
-    return the gloabl instance
-    */
-    static CpTaskExecutor *globalInstance();
-    
-    /*
-    destroy the global instance 
-    */
-    static void destroyGlobalInstance();
-
-    /*
-    add the task to running queue
-    @task the task
-    @append ture -- append to tail false -- preappend to head
-    */
-
-    bool runTask(CpTask *task,bool append = false);
-
-    /*
-    stop the thread and remove all not running tasks
-    */
-    void stop();
-
-    /*
-    move a task to front of the queue
-    */
-    bool toFront(CpTask *task);
-
-    /*
-    move a task to front of the queue
-    */
-    template <typename Predicate> bool toFront(Predicate pred);
-
-protected:
-    /*
-    From QThread, run tasks
-    */
-    virtual void run();
-private:
-    /*
-    remove not running tasks
-    */
-    void removeTasks();
-private:
-    QList<CpTask*> mTasks;
-    QMutex mMutex;
-    volatile bool mStopped;
-};
-
-
-template<typename Predicate>
-bool CpTaskExecutor::toFront(Predicate pred)
-{
-    QMutexLocker locker(&mMutex);
-    
-    QList<CpTask*>::iterator workIterator = mTasks.begin();
-    QList<CpTask*>::iterator endIterator(mTasks.end());
-
-    for(;workIterator != endIterator;++workIterator)
-    {
-        if (pred(*workIterator)) {
-            break;
-        }
-    }
-
-    if (workIterator == endIterator) {
-        return false;
-    }
-
-    CpTask *task = *workIterator;
-    mTasks.erase(workIterator);
-    mTasks.insert(0,task);
-
-    return true;
-}
-
-#endif  //CPTASKECECUTOR_H
-
-//End of File