williamr@2: // Copyright (c) 1998-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@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.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: williamr@2: #if !defined __MTCLREG_H__ williamr@2: #define __MTCLREG_H__ williamr@2: williamr@2: #include // CActive, TFileName etc. williamr@2: #include williamr@2: #include // MMsvSessionObserver williamr@2: williamr@2: // CObserverRegistry mixes in session notification API williamr@2: // this allows run-time update of the registries on the client-side. williamr@2: // the server registry should inherit from CMtmDllRegistry williamr@2: class CObserverRegistry : public CMtmDllRegistry, public MMsvSessionObserver williamr@2: /** Base class for client, UI and UI data MTM registries. williamr@2: williamr@2: It implements the session observer interface to update the registry information williamr@2: when MTM groups are installed or uninstalled. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C virtual void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); williamr@2: IMPORT_C ~CObserverRegistry(); williamr@2: williamr@2: protected: williamr@2: IMPORT_C CObserverRegistry(CMsvSession& aMsvSession,TUid aDllTypeUid,TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32); williamr@2: IMPORT_C void ConstructL(); williamr@2: williamr@2: protected: williamr@2: CMsvSession& iMsvSession; williamr@2: TBool iIsAdded; williamr@2: }; williamr@2: williamr@2: // Client side MTM registry williamr@2: class CClientMtmRegistry : public CObserverRegistry williamr@2: /** Accesses the Client-side MTM registry. williamr@2: williamr@2: This registry holds details of the all the Client-side MTMs currently available williamr@2: on the system. Message client applications use this class to get a CBaseMtm-derived williamr@2: object by which to access Client-side MTM functionality. williamr@2: williamr@2: Note that the base class CMtmDllRegistry provides functions for discovering williamr@2: what MTMs are present in the registry. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CClientMtmRegistry* NewL(CMsvSession& aMsvSession, TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32=TTimeIntervalMicroSeconds32(30000000)); williamr@2: IMPORT_C ~CClientMtmRegistry(); williamr@2: IMPORT_C CBaseMtm* NewMtmL(TUid aMtmTypeUid); williamr@2: // williamr@2: protected: williamr@2: CClientMtmRegistry(CMsvSession& aMsvSession,TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32); williamr@2: void ConstructL(); williamr@2: // williamr@2: private: williamr@2: CBaseMtm* DoNewMtmL(const RLibrary& aLib, CRegisteredMtmDll& aReg) const; williamr@2: }; williamr@2: williamr@2: #endif // __MTCLREG_H__