diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgappfw/server/inc/ccsplugininterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgappfw/server/inc/ccsplugininterface.h Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2007 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: This defines the interface for E-com plugins +* +*/ + +#ifndef __C_CS_PLUGIN_INTERFACE_H +#define __C_CS_PLUGIN_INTERFACE_H + +// SYSTEM INCLUDE FILES + +// USER INCLUDES + +// FORWARD DECLARATION +class CCsPlugin; +class CCsServer; +// CLASS DECLARATION +/** +* Class is used to instantiate the required plugins when the +* conversation deatils has been asked. +* Acts as interface to all Plugins. +*/ + +class CCsPluginInterface: public CBase +{ + public: + + /** + * NewL + * Symbian OS 2 phased constructor + * + * @return A pointer to the created instance of CCsPluginInterface. + */ + static CCsPluginInterface* NewL(); + + /** + * NewLC + * Symbian OS 2 phased constructor + * + * @return A pointer to the created instance of CCsPluginInterface. + */ + static CCsPluginInterface* NewLC(); + + /** + * Destructor. + */ + virtual ~CCsPluginInterface(); + + /** + * InstantiatePluginL + * Instantiates the required plug-ins known by the ecom framework. + * basically this function first calls ListAllImplementationsL() + * + * @param aCsServer server instance + */ + void InstantiatePluginL(CCsServer* aCsServer); + + /** + * UnloadPlugIns + * Unloads all plugins + * This should internally call REComSession::DestroyedImplementation( iDtor_ID_Key ) + * and then REComSession::FinalClose() + */ + void UnloadPlugIns(); + + /** + * ListAllImplementationsL + * Lists all implementations which satisfy this ecom interface + * + * @param aImplInfoArray On return, contains the list of available implementations + */ + inline void ListAllImplementationsL( + RImplInfoPtrArray& aImplInfoArray ) + { + REComSession::ListImplementationsL( + KCsPluginInterfaceUid, + aImplInfoArray ); + } + + /** + * GetConversationsL + * Forwards the request to the plugin instance , + * to get the all conversations from the plugins + */ + void GetConversationsL(); + + /** + * GetPluginsCount + * Gets the plugins count + * + * @return Plugin count + */ + TInt GetPluginsCount(); + + private: + + /** + * Performs the first phase of two phase construction. + */ + CCsPluginInterface(); + + /** + * Symbian OS 2 phased constructor. + */ + void ConstructL(); + + /** + * InstantiatePlugInFromImpUidL + * Instantiates a CS plug-in, knowing the implementation uid + * + * @param aImpUid imp uID + * @param aCsServer, instance of server class + */ + CCsPlugin* InstantiatePlugInFromImpUidL( + const TUid& aImpUid, + CCsServer* aCsServer ); + + + private: + + /** + * iDtor_ID_Key + * Unique Key, handle by ECom plugin + */ + TUid iDtor_ID_Key; + + /** + * iCsPluginInstances + * Array of all the plugin instances + */ + RPointerArray iCsPluginInstances; + + /** + * iPluginInUse + * Uid of the plugin in use. + */ + TUid iPluginInUse; +}; + +#endif // __C_CS_PLUGIN_INTERFACE_H + +//End of File \ No newline at end of file