williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __EIKSERVERAPP_H__ williamr@2: #define __EIKSERVERAPP_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: class RWindowGroup; williamr@2: williamr@2: /** Launches and connects to new instances of server apps. williamr@2: williamr@2: This adds the ability to launch new server applications to williamr@2: RApaAppServiceBase. williamr@2: All UI level client side service support should derive from this williamr@2: class. williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: @see RApaAppServiceBase */ williamr@2: class REikAppServiceBase : public RApaAppServiceBase williamr@2: { williamr@2: public: williamr@2: IMPORT_C void ConnectNewAppL(TUid aAppUid); williamr@2: IMPORT_C void ConnectNewAppL(TUid aAppUid, const TSecurityPolicy& aSecurityPolicy); williamr@2: IMPORT_C void ConnectNewChildAppL(TUid aAppUid, RWindowGroup& aParentWindowGroup); williamr@2: IMPORT_C void ConnectNewChildAppL(TUid aAppUid, RWindowGroup& aParentWindowGroup, const TSecurityPolicy& aSecurityPolicy); williamr@2: IMPORT_C void Close(); williamr@2: private: williamr@2: void LaunchAppL(TUid aAppUid, TUint aServerDifferentiator, RWindowGroup* aParentWindowGroup, williamr@2: TRequestStatus& aRequestStatusForRendezvous, TApaCommand& aLaunchCommand); williamr@2: TUint StartServerL(TUid aAppUid, RWindowGroup* aParentWindowGroup); williamr@2: private: williamr@2: IMPORT_C virtual void ExtensionInterface(TUid aInterfaceId, TAny*& aImplementaion); williamr@2: private: williamr@2: TInt iREikAppServiceBase_Spare1; williamr@2: }; williamr@2: williamr@2: williamr@2: /** Base class for all server application's servers. williamr@2: Server applications must derive from this class to implement their williamr@2: servers. These must be instantiated in an override of williamr@2: CEikApplication::NewAppServerL(). williamr@2: This class adds support for uniquely named servers over CApaAppServers. williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: @see CApaAppServer */ williamr@2: class CEikAppServer : public CApaAppServer williamr@2: { williamr@2: public: // from CApaAppServer williamr@2: IMPORT_C void ConstructL(const TDesC& aFixedServerName); williamr@2: IMPORT_C CApaAppServiceBase* CreateServiceL(TUid aServiceType) const; williamr@2: IMPORT_C TCustomResult CreateServiceSecurityCheckL(TUid aServiceType, const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing); williamr@2: public: // internal williamr@2: void ConstructUniqueL(TUint aServerDifferentiator, TUid aAppUid); williamr@2: private: williamr@2: IMPORT_C virtual void ExtensionInterface(TUid aInterfaceId, TAny*& aImplementaion); williamr@2: private: williamr@2: TInt iCEikAppServer_Spare1; williamr@2: }; williamr@2: williamr@2: #endif // __EIKSERVERAPP_H__