sysanadatacapture/piprofiler/piprofiler_api/inc/WriterPluginInterface.inl
changeset 2 6a82cd05fb1e
parent 1 3ff3fecb12fe
equal deleted inserted replaced
1:3ff3fecb12fe 2:6a82cd05fb1e
     1 /*
       
     2 * Copyright (c) 2009 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:  
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 inline CWriterPluginInterface::CWriterPluginInterface()
       
    20     : iOrder( KWriterPluginNotIndexed ) 
       
    21     {
       
    22         
       
    23     }
       
    24 
       
    25 // -----------------------------------------------------------------------------
       
    26 // CWriterPluginInterface::~CWriterPluginInterface()
       
    27 // Destructor.
       
    28 // -----------------------------------------------------------------------------
       
    29 //
       
    30 inline CWriterPluginInterface::~CWriterPluginInterface()
       
    31     {
       
    32     // We don't unload the plugin object here. The loader
       
    33     // has to do this for us. Without this kind of destruction idiom, 
       
    34     // the view framework can potentially unload an ECOM plugin dll whilst 
       
    35     // there are still child views (Created by the plugin) that are registered 
       
    36     // with the view framework. If this occurs, the plugin code segment isn't 
       
    37     // loaded anymore and so there is no way to run the subsequent destructor 
       
    38     // code => exception.
       
    39     
       
    40     // If in the NewL some memory is reserved for member data, it must be
       
    41     // released here. This interface does not have any instance variables so
       
    42     // no need to delete anything.
       
    43 
       
    44     // Inform the ECOM framework that this specific instance of the
       
    45     // interface has been destroyed.
       
    46     REComSession::DestroyedImplementation(iDtor_ID_Key);
       
    47     }
       
    48 
       
    49 inline CWriterPluginInterface* CWriterPluginInterface::NewL(const TUid aImplementationUid, TAny* aInitParams)
       
    50     {
       
    51     // Define options, how the default resolver will find appropriate
       
    52     // implementation.
       
    53     return REINTERPRET_CAST(CWriterPluginInterface*, 
       
    54                             REComSession::CreateImplementationL(aImplementationUid,
       
    55                                                                 _FOFF( CWriterPluginInterface, iDtor_ID_Key ),
       
    56                                                                 aInitParams)); 
       
    57     }
       
    58 
       
    59 inline void CWriterPluginInterface::ListAllImplementationsL(RImplInfoPtrArray& aImplInfoArray)
       
    60     {
       
    61     REComSession::ListImplementationsL(KWriterPluginInterfaceUid, aImplInfoArray);
       
    62     }
       
    63 
       
    64 inline void CWriterPluginInterface::SetOrder( TInt aOrder )
       
    65     {
       
    66     iOrder = aOrder;
       
    67     }
       
    68 
       
    69 // end of file