diff -r 4ea6f81c838a -r 0e9bb658ef58 inc/alf/alfecompluginfactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/alf/alfecompluginfactory.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,94 @@ +/* +* Copyright (c) 2002-2004 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: Ecom plugin Factory header. +* +*/ + + +#ifndef C_ALFECOMPLUGINFACTORY_H +#define C_ALFECOMPLUGINFACTORY_H + +#include +#include // for typedeffed RImplInfoPtrArray +#include + +namespace Alf + { + +/** + * @class CAlfEComPluginFactory alfecompluginfactory.h "alf/alfecompluginfactory.h" + * Base class for Ecom plugins. Takes care of ecom housekeeping. + * + * @lib alfwidgetutils.lib + * @since S60 ?S60_version + * @status Draft + */ +class CAlfEComPluginFactory : public CBase, public IAlfInterfaceBase + { +public: // Constructors and destructor + + /** + * Factory method to create plugin for given interface + * @param aInterfaceUid UID of interface being queried/created. + * @param aImplKey Implementation Key + * @return An ecom plugin factory. + */ + IMPORT_C static CAlfEComPluginFactory* createPluginFactory( + TUid aInterfaceUid,const char* aImplKey); + + /** + * Destructor. + */ + IMPORT_C virtual ~CAlfEComPluginFactory(); + +public: + /** + * List available interface implementations. + * @since Series 60 3.2 + * @param aInterfaceUid: Interface Uid + * @param aImplInfoArray: Place holder which gets populated + * after function call + */ + IMPORT_C static void getImplementationsL( + TUid aInterfaceUid, + RImplInfoPtrArray& aImplInfoArray); + + /** + * List available interface implementations. + * @since Series 60 3.2 + * @param aInterfaceUid: Interface Uid + * @param aImplKey Implementation Key + * @param aImplInfoArray: Place holder which gets populated after + * function call + */ + IMPORT_C static void getImplementationsL(TUid aInterfaceUid, + const char* aImplKey, + RImplInfoPtrArray& aImplInfoArray); + +protected: + + /** + * C++ default constructor. + */ + IMPORT_C CAlfEComPluginFactory(); + +private: // Data + // Ecom instance release key + TUid mDtorKey; + }; + } + +#endif + +// End of File