sl@0: /* sl@0: * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: Header definition of server plugin wrapper class implementig S60 custom interface. sl@0: * sl@0: */ sl@0: sl@0: sl@0: #ifndef CIEXTNSERVERPLUGINWRAPPER_H sl@0: #define CIEXTNSERVERPLUGINWRAPPER_H sl@0: sl@0: #include sl@0: #include sl@0: sl@0: // Forward declarations sl@0: class MCustomInterface; sl@0: class MyMCustomInterface; sl@0: sl@0: class CIExtnServerPluginWrapper : public CBase, sl@0: public MCustomInterface sl@0: { sl@0: public: // Constructors and destructor sl@0: sl@0: /** sl@0: * Constructs, and returns a pointer to, a new CIExtnCustomInterfaceS60 object. sl@0: * Leaves on failure.. sl@0: * @param MCustomInterface& aInterfaceRef A reference to MCustomInterface. sl@0: * @return CIExtnCustomInterfaceS60* A pointer to newly created object. sl@0: */ sl@0: static CIExtnServerPluginWrapper* NewL(MCustomInterface& aInterfaceRef); sl@0: sl@0: /** sl@0: * Destructor. sl@0: */ sl@0: ~CIExtnServerPluginWrapper(); sl@0: sl@0: public: sl@0: /** sl@0: Obtain a custom interface sl@0: @param aInterfaceId The UID of the required custom interface sl@0: @return a pointer to the custom interface sl@0: */ sl@0: TAny* CustomInterface(TUid aInterfaceId); sl@0: sl@0: public: sl@0: MCustomInterface* GetInterface(); sl@0: void Release(); sl@0: private: sl@0: sl@0: /** sl@0: * Default Constructor sl@0: */ sl@0: CIExtnServerPluginWrapper(MCustomInterface& aInterfaceRef); sl@0: sl@0: /** sl@0: * Second phase constructor. sl@0: */ sl@0: void ConstructL(); sl@0: sl@0: private: sl@0: MCustomInterface* iCustomInterfaceRef; sl@0: MyMCustomInterface* iCustomInterfaceStub; sl@0: sl@0: private: sl@0: TUid iDtor_ID_Key; sl@0: }; sl@0: sl@0: #endif // CIEXTNSERVERPLUGINWRAPPER_H