diff -r 641f389e9157 -r a71299154b21 authenticationservices/authenticationserver/source/server/pluginmgr.h --- a/authenticationservices/authenticationserver/source/server/pluginmgr.h Tue Aug 31 17:00:08 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/* -* Copyright (c) 2005-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: -* -*/ - - -/** - @file - @released - @internalComponent -*/ -#ifndef PLUGINMGR_H -#define PLUGINMGR_H - -#include -namespace AuthServer -{ - -/** - * The plugin manager is responsible for managing the lifetime of plugin DLLs. - **/ - -class CPluginMgr : public CBase - { -public: - static CPluginMgr* NewL(); - static CPluginMgr* NewLC(); - - ~CPluginMgr(); - - /** - * Returns the requested plugin. If the plugin has not yet been loaded - * then it will be instantiated and cached prior to returning. - * - * @param aId the id of the plugin to return. - * - * @return the requested plugin - * - * @leave KErrAuthServerNoSuchPlugin - * - **/ - CAuthPluginInterface* PluginL(const TPluginId& aId); - - /** - * Returns the list of plugin implementations. The list is cached for use - * rather than reloading it in multiple places. - * - * @return the array of implementation info objects - * - **/ - const RImplInfoPtrArray& ImplementationsL(); - - CAuthPluginInterface* ImplementationL(TInt aIndex); - - /** - * Forces all plugins to forget their training for id - * - * @param aId the id of the identitiy to forget. - * - **/ - void ForgetIdentityL(TIdentityId aId); - - /** - * Builds authentication plugins list. - **/ - void BuildAuthPluginsListL(); - -private: - static TInt PluginCompare(const CAuthPluginInterface& lhs, - const CAuthPluginInterface& rhs); - - static TInt FindById(const TPluginId* lhs, - const CAuthPluginInterface& rhs); - - static TLinearOrder SPluginOrder; - - void ConstructL(); - - - /** - * Forces the plugin manager to free all plugin objects. - **/ - void ReleasePlugins(); - - /** - * Forces the plugin manager to free the implemtation info array and - * reload it on the next call to Implementations. - **/ - void ReleaseImplInfo(); - - /** - * Creates an implementation of the specified plugin. - * - * @param aId Id of the plugin to be created. - * - * @return the requested plugin - * - **/ - CAuthPluginInterface* CreatePluginImplementationL(const TPluginId &aId); - -private: - mutable RPointerArray iPlugins; - - mutable RImplInfoPtrArray iImplArray; - - /** - * Maintain a list of plugin destructor keys. - * This is used to destroy all plugin instances when ReleasePlugins - * is called. - * */ - mutable RArrayiPluginDtorUids; - - }; - -} //namespace - -#endif // PLUGINMGR_H