os/mm/devsoundextensions/ciextnfactoryplugins/ciextnserverplugin/src/ciextnserverpluginwrapper.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 /*
     2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
     3 * All rights reserved.
     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".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:   Header definition of server plugin wrapper class implementig S60 custom interface.
    15 *
    16 */
    17 
    18 
    19 #ifndef CIEXTNSERVERPLUGINWRAPPER_H
    20 #define CIEXTNSERVERPLUGINWRAPPER_H
    21 
    22 #include <e32base.h>
    23 #include <MCustomInterface.h>
    24 
    25 // Forward declarations
    26 class MCustomInterface;
    27 class MyMCustomInterface;
    28 
    29 class CIExtnServerPluginWrapper : public CBase, 
    30                                   public MCustomInterface
    31     {
    32     public:  // Constructors and destructor
    33 
    34         /**
    35         * Constructs, and returns a pointer to, a new CIExtnCustomInterfaceS60 object.
    36         * Leaves on failure..
    37         * @param MCustomInterface& aInterfaceRef A reference to MCustomInterface.
    38         * @return CIExtnCustomInterfaceS60* A pointer to newly created object.
    39         */
    40         static CIExtnServerPluginWrapper* NewL(MCustomInterface& aInterfaceRef);
    41 
    42         /**
    43         * Destructor.
    44         */
    45         ~CIExtnServerPluginWrapper();
    46         
    47     public: 
    48         /**
    49         Obtain a custom interface
    50         @param aInterfaceId  The UID of the required custom interface
    51         @return a pointer to the custom interface
    52          */
    53         TAny* CustomInterface(TUid aInterfaceId);
    54         
    55     public:
    56         MCustomInterface* GetInterface();
    57         void Release();
    58     private:
    59 
    60         /**
    61         * Default Constructor 
    62         */
    63         CIExtnServerPluginWrapper(MCustomInterface& aInterfaceRef);
    64 
    65         /**
    66         * Second phase constructor.
    67         */
    68         void ConstructL();
    69 
    70     private:
    71         MCustomInterface* iCustomInterfaceRef;
    72         MyMCustomInterface* iCustomInterfaceStub;
    73 
    74     private:
    75         TUid iDtor_ID_Key;
    76     };
    77 
    78 #endif // CIEXTNSERVERPLUGINWRAPPER_H