installationservices/swi/source/sislauncher/server/sislaunchersession.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:21:33 +0300
branchRCL_3
changeset 25 7333d7932ef7
parent 0 ba25891c3a9e
child 26 8b7f4e561641
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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: 
* SisLauncher - session definition
*
*/


/**
 @file 
 @released
 @internalComponent
*/

#include <e32base.h>
#include "sislauncherserver.h"
#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK  
#include <usif/scr/appregentries.h>
#include "nativecomponentinfo.h"
#endif
namespace Swi
{
class CSisRegistryFileDescription;
class CThreadMonitor;


class CSisLauncherSession : public CSession2
	{
public:
	CSisLauncherSession();
	void CreateL();
	
private:
	
	~CSisLauncherSession();
	inline CSisLauncherServer& Server();
	void ServiceL(const RMessage2& aMessage);
	void ServiceError(const RMessage2& aMessage,TInt aError);
	inline TBool ReceivePending() const;

	void CheckApplicationInUseL(TUid aUid);

#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
	void ParseSwTypeRegFileL(const RMessage2& aMessage);
    TInt AsyncParseResourceFileSizeL(const RMessage2& aMessage);
    void AsyncParseResourceFileDataL(const RMessage2& aMessage);    
#endif

#ifndef SWI_TEXTSHELL_ROM
#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
	void RegisterSifLauncherMimeTypesL(const RMessage2& aMessage);
	void UnregisterSifLauncherMimeTypesL(const RMessage2& aMessage);
	void RegisterSifLauncherMimeTypesImplL(const RMessage2& aMessage, TBool aRegister);
	void NotifyApparcForAppsL(const RMessage2& aMessage);
#endif
#endif
	void DoRunExecutableL(const RMessage2& aMessage);
	void DoStartDocumentL(const RMessage2& aMessage);
	void DoStartDocumentByHandleL(const RMessage2& aMessage);
	void DoStartByMimeL(const RMessage2& aMessage);
	void DoStartByMimeByHandleL(const RMessage2& aMessage);


private:
	RMessagePtr2 iReceiveMsg;
	TInt iReceiveLen;
#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK 
    Usif::CApplicationRegistrationData* iCurrentAppRegData;
    TBool iInAsyncParseResourceFile;
#endif

	};

// CSisLauncherSession inlines
inline TBool CSisLauncherSession::ReceivePending() const
	{return !iReceiveMsg.IsNull();}

inline CSisLauncherServer& CSisLauncherSession::Server()
	{return *static_cast<CSisLauncherServer*>(const_cast<CServer2*>(CSession2::Server()));}

} //namespace