diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/msgsrvnstore/mtmbase/inc/MTUDREG.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgsrvnstore/mtmbase/inc/MTUDREG.H Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,87 @@ +// Copyright (c) 1998-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: +// + +#if !defined __MTUDREG_H__ +#define __MTUDREG_H__ + +#if !defined (__MTCLREG_H__) +#include +#endif + +class CBaseMtmUiData; + +/** UI Data MTM factory function. + +A concrete UI Data MTM must implement an exported factory function of this +type. It should return an instance of the CBaseMtmUiData-derived class that +provides the implementation. The factory function is called by the UI Data +MTM registry when a client requests this UI Data MTM. + +A CBaseMtmUiData-derived class typically provides a NewL() function, which +the factory function calls. + +The factory function is called by ordinal. The ordinal of the function must +match that recorded in the MTM's registry information. + +The CRegisteredMtmDll& argument passes the registration data for the MTM DLL. + +The return value is a newly-created instance of the CBaseMtmUi-derived class +for the User Interface MTM. + +The factory function should leave if it cannot create the object. + +For example, a UI Data MTM whose concrete class was CEgMtmUiData could define +a suitable factory function as: + +@code +EXPORT_C CBaseMtmUiData* NewEgMtmL(CRegisteredMtmDll& aRegisteredMtmDll) + { + return CEgMtmUiData::NewL(aRegisteredMtmDll); + } +@endcode */ +typedef CBaseMtmUiData* MtmUiDataFactoryFunctionL(CRegisteredMtmDll&); + +// Client side MTM UI data registry + +class CMtmUiDataRegistry : public CObserverRegistry +/** Accesses the UI Data MTM registry. + +This registry holds details of the all the +UI Data MTMs currently available on the system. Message client applications +use this class to get a CBaseMtmUiData-derived object by which to access UI +Data MTM functionality. + +Note that the base class CMtmDllRegistry provides functions for discovering +what MTMs are present in the registry. +@publishedAll +@released +*/ + { +public: + IMPORT_C static CMtmUiDataRegistry* NewL(CMsvSession& aMsvSession, + TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32=TTimeIntervalMicroSeconds32(30000000)); + virtual ~CMtmUiDataRegistry(); + IMPORT_C CBaseMtmUiData* NewMtmUiDataLayerL(const TUid& aMtmTypeUid); + // +protected: + CMtmUiDataRegistry(CMsvSession& aMsvSession, TTimeIntervalMicroSeconds32 aTimeoutMicroSeconds32); + // +private: + CBaseMtmUiData* NewMtmL(const RLibrary& aLib, CRegisteredMtmDll& aReg) const; + }; + + + +#endif // __MTUDREG_H__