os/mm/devsoundextensions/ciextnfactoryplugins/ciextnserverplugin/src/ciextnserverplugin.h
First public contribution.
2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Header definition of plugin class implementing devsound server
15 * side custom interface extension.
21 #ifndef CIEXTNSERVERPLUGIN_H
22 #define CIEXTNSERVERPLUGIN_H
26 #include <a3f/mmfdevsoundcustominterfaceextensions.h>
27 #include "ciextnserverpluginwrapper.h"
29 // Forward declarations
30 class MCustomInterface;
31 class MCIMsgHndlrIntfc;
34 * Plugin class implementing DevSound CI server Extension
36 * An instance of this class is created when DevSound Session is created. When
37 * DevSound session object receives a RMmfIpcMessage that cannot be handled, the
38 * message is forwarded to this plugin.
40 * Only one instance of this plugin can exist in the system.
42 * This class is intended to be used only by DevSound Session implementation.
47 class CCIExtnServerPlugin : public CBase,
48 public MDevSoundCIServerExtension
53 * Two-phased constructor.
54 * Called by ECom framework.
56 static MDevSoundCIServerExtension* NewL();
61 ~CCIExtnServerPlugin();
63 // From MDevSoundCIServerExtension begins
64 // Called by framework when plugin is constructed
65 TInt Setup( MCustomInterface& aInterface );
66 // Called by framework passing aMessage to handle
67 TInt HandleMessageL(const RMmfIpcMessage& aMessage);
68 // Called by framework when plugin is to be deleted
70 // Called by framework after plugin is created
71 void PassDestructorKey( TUid aDestructorKey );
72 // From MDevSoundCIClientExtension ends
79 CCIExtnServerPlugin();
82 * Second phase constructor.
87 * Initializes factory plugins list.
91 void InitializeMsgHndlrPluginsL();
96 * Reference to MCustomInterface interface
99 MCustomInterface* iMCustomInterface;
102 * Reference to MCustomInterface interface
105 CIExtnServerPluginWrapper* iCiExtnServerPluginWrapper;
108 * Uid of the plugin object passed by the framework via PassDestructorKey()
113 * List of message handler plugins. When framework calls
114 * HandleMessageL() function, the request will be forwarded to each
115 * message handler plugin in this list until it is handled.
119 RPointerArray<MCIMsgHndlrIntfc> iMCIMsgHndlrIntfcList;
122 #endif // CIEXTNSERVERPLUGIN_H