logsui/logsengine/logssymbianos/inc/logsremovestates.h
author hgs
Thu, 08 Jul 2010 11:31:03 +0300
changeset 9 68f3171a5819
permissions -rw-r--r--
201027

/*
* 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 LOGSREMOVESTATES_H
#define LOGSREMOVESTATES_H

//  INCLUDES
#include <QList>
#include "logsstatebase.h"

class LogsRemoveStateContext;

/**
 * Base for remove states
 */
class LogsRemoveStateBase : public LogsStateBase {

    friend class UT_LogsRemoveStates;
    
    public:
        LogsRemoveStateBase(LogsStateBaseContext& context, LogsRemoveStateContext& removeContext);
        virtual ~LogsRemoveStateBase(){}

    protected:
        LogsRemoveStateContext& mContext;
};

/**
 * State for clearing all events or specific event types from main db view
 */
class LogsRemoveStateClearAll : public LogsRemoveStateBase {

    friend class UT_LogsRemoveStates;
    
    public:
        LogsRemoveStateClearAll(
            LogsStateBaseContext& context, LogsRemoveStateContext& removeContext) : 
                LogsRemoveStateBase(context, removeContext) {}
        virtual ~LogsRemoveStateClearAll(){}
    
    public: // From LogsReaderStateBase
        virtual bool enterL();
        virtual bool continueL();
};

/**
 * State for initializing removal from recent db view
 */
class LogsRemoveStateInit : public LogsRemoveStateBase {

    friend class UT_LogsRemoveStates;
    
    public:
        LogsRemoveStateInit(
            LogsStateBaseContext& context, LogsRemoveStateContext& removeContext) : 
                LogsRemoveStateBase(context, removeContext) {}
        virtual ~LogsRemoveStateInit(){}
    
    public: // From LogsReaderStateBase
        virtual bool enterL();
        virtual bool continueL();
};

/**
 * State for event id based deletion of events from main db view
 */
class LogsRemoveStateDelete : public LogsRemoveStateBase {

    friend class UT_LogsRemoveStates;
    
    public:
        LogsRemoveStateDelete(
            LogsStateBaseContext& context, LogsRemoveStateContext& removeContext) : 
                LogsRemoveStateBase(context, removeContext), mRemoveIndex(0) {}
        virtual ~LogsRemoveStateDelete(){}
    
    public: // From LogsReaderStateBase
        virtual bool enterL();
        virtual bool continueL();
    protected:
        bool deleteNextEvent();
    protected:
        int mRemoveIndex;
};

/**
 * State for deleting duplicate events from recent db view
 */
class LogsRemoveStateDeleteDuplicates : public LogsRemoveStateBase {

    friend class UT_LogsRemoveStates;
    
    public:
        LogsRemoveStateDeleteDuplicates(
            LogsStateBaseContext& context, LogsRemoveStateContext& removeContext) : 
                LogsRemoveStateBase(context, removeContext) {}
        virtual ~LogsRemoveStateDeleteDuplicates(){}
    
    public: // From LogsReaderStateBase
        virtual bool enterL();
        virtual bool continueL();
    protected:
            bool deleteNextEvent();   
    protected:
        bool mDeleting;
        QList<int> mDeleteDuplicateIds;
};

/**
 * Completion state
 */
class LogsRemoveStateDone : public LogsRemoveStateBase {

    friend class UT_LogsRemoveStates;
    
    public:
        LogsRemoveStateDone(
            LogsStateBaseContext& context, LogsRemoveStateContext& removeContext) : 
                LogsRemoveStateBase(context, removeContext) {}
        virtual ~LogsRemoveStateDone(){}
    
    public: // From LogsReaderStateBase
        virtual bool enterL();
};



#endif      // LOGSREMOVESTATES_H


// End of File