activityfw/storage/server/inc/afsession.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 06 Jul 2010 14:37:10 +0300
changeset 104 9b022b1f357c
permissions -rw-r--r--
Revision: 201025 Kit: 2010127

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

#ifndef __E32SVR_H__
#define __E32SVR_H__
#endif 
// INCLUDES
#include <e32std.h>
#include <e32base.h>
#include <f32file.h>

#include "aftaskstorage.h"

class CAfStorage;

class CAfSession : public CSession2,
                   public MAfTaskStorage
{
public:
    ~CAfSession();

    static CAfSession* NewL(RFs& fileSession,
                            MAfTaskStorage& taskStorage, 
                            CAfStorage&storage);

public:
    void PushL(CAfTask *);

    void Pop(CAfTask *);

    const RPointerArray<CAfTask>& StorageData() const;

    void RemoveNotValidTasks(const CSession2* session);

private:
    CAfSession(RFs& fileSession,
               MAfTaskStorage& taskStorage, 
               CAfStorage& storage);

    void ConstructL();

private:
    void ServiceL(const RMessage2& message);

private:
    RFs& mFileSession; 
    MAfTaskStorage& mTasksStorage;
    CAfStorage& mStorage;
    RPointerArray<CAfTask> mRunningTasks;
};

#endif // AFSESSION_H