filemanager/aiwprovider/inc/filemanageraiwprovider.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:09:41 +0200
changeset 0 6a9f87576119
permissions -rw-r--r--
Revision: 201001 Kit: 201003

/*
* Copyright (c) 2008 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:  This class offers AIW services
*
*/



#ifndef C_FILEMANAGERAIWPROVIDER_H
#define C_FILEMANAGERAIWPROVIDER_H

// INCLUDE FILES
#include <e32std.h>
#include <AiwServiceIfBase.h>
#include <AknLaunchAppService.h>


// CLASS DECLARATION
/**
*  This class offers AIW services
*
*  @since 5.0
*/
NONSHARABLE_CLASS( CFileManagerAiwProvider ) :
        public CAiwServiceIfBase,
        public MAknServerAppExitObserver
    {
public:

    /**
    * Two-phased constructor.
    */
    static CFileManagerAiwProvider* NewL();

    /**
    * Destructor.
    */
    ~CFileManagerAiwProvider();

public: // From CAiwServiceIfBase

    void InitialiseL(
        MAiwNotifyCallback& aFrameworkCallback,
        const RCriteriaArray& aInterest );

    void HandleServiceCmdL(
        const TInt& aCmdId,
        const CAiwGenericParamList& aInParamList,
        CAiwGenericParamList& aOutParamList,
        TUint aCmdOptions = 0,
        const MAiwNotifyCallback* aCallback = NULL );

public: // From MAknServerAppExitObserver
    void HandleServerAppExit( TInt aReason );

private: // New methods
    void CmdEditL(
        const CAiwGenericParamList& aInParamList,
        const MAiwNotifyCallback* aCallback );

    void NotifyL( TInt aEvent );

    TUid GetAppUidL();

    TUid GetAppUid();

    void LaunchEmbeddedL(
        const CAiwGenericParamList& aInParamList,
        const MAiwNotifyCallback* aCallback );

    TBool IsStandaloneLaunch(
        const CAiwGenericParamList& aInParamList );

    void LaunchStandaloneL(
        const CAiwGenericParamList& aInParamList );

    TBool IsFolderToOpenPathGiven(
        const CAiwGenericParamList& aInParamList );

private:
    /**
    * C++ default constructor.
    */
    CFileManagerAiwProvider();

private: // Data
    /**
     * For launching embedded file manager
     * Own.
     */
    CAknLaunchAppService* iService;

    /**
     * For client notifications
     * Not own.
     */
    const MAiwNotifyCallback* iCallback;

    /**
     * For storing the current input params
     * Own.
     */
    CAiwGenericParamList* iInParamList;

    /**
     * Id of the current command
     */
    TInt iCmd;

    /**
     * The uid of File Manager application to be started for this service
     */
    TUid iAppUid;

    };

#endif // C_FILEMANAGERAIWPROVIDER_H