qtecomplugins/xqplugins/src/xqpluginfactory.cpp
changeset 1 2b40d63a9c3d
child 5 453da2cfceef
equal deleted inserted replaced
0:cfcbf08528c4 1:2b40d63a9c3d
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     5 **
       
     6 ** This file is part of the QtCore module of the Qt Toolkit.
       
     7 **
       
     8 ** $QT_BEGIN_LICENSE:LGPL$
       
     9 ** No Commercial Usage
       
    10 ** This file contains pre-release code and may not be distributed.
       
    11 ** You may use this file in accordance with the terms and conditions
       
    12 ** contained in the either Technology Preview License Agreement or the
       
    13 ** Beta Release License Agreement.
       
    14 **
       
    15 ** GNU Lesser General Public License Usage
       
    16 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    17 ** General Public License version 2.1 as published by the Free Software
       
    18 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    19 ** packaging of this file.  Please review the following information to
       
    20 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    21 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    22 **
       
    23 ** In addition, as a special exception, Nokia gives you certain
       
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
       
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
       
    26 ** package.
       
    27 **
       
    28 ** GNU General Public License Usage
       
    29 ** Alternatively, this file may be used under the terms of the GNU
       
    30 ** General Public License version 3.0 as published by the Free Software
       
    31 ** Foundation and appearing in the file LICENSE.GPL included in the
       
    32 ** packaging of this file.  Please review the following information to
       
    33 ** ensure the GNU General Public License version 3.0 requirements will be
       
    34 ** met: http://www.gnu.org/copyleft/gpl.html.
       
    35 **
       
    36 ** If you are unsure which license is appropriate for your use, please
       
    37 ** contact the sales department at http://www.qtsoftware.com/contact.
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 #include <xqpluginfactory.h>
       
    43 
       
    44 #include "xqpluginhandle.h"
       
    45 #include <ecom/ecom.h>
       
    46 #include <QString>
       
    47 #include <QObject>
       
    48 
       
    49 CPluginFactory* CPluginFactory::NewL(int aUid)
       
    50 {
       
    51     TUid requestedUid(KNullUid);
       
    52     requestedUid.iUid = aUid;
       
    53     return reinterpret_cast <CPluginFactory*>( 
       
    54                 REComSession::CreateImplementationL(requestedUid, 
       
    55                                                     _FOFF(CPluginFactory, 
       
    56                                                             iDtor_ID_Key)));
       
    57 }
       
    58 
       
    59 EXPORT_C CPluginFactory::~CPluginFactory()
       
    60 {
       
    61     if (KNullUid != iDtor_ID_Key) {
       
    62         REComSession::DestroyedImplementation(iDtor_ID_Key);
       
    63     }
       
    64 }
       
    65 
       
    66 QObject* CPluginFactory::createQtPlugin()
       
    67 {
       
    68     QObject* retVal(NULL);
       
    69     if (KNullUid != iDtor_ID_Key) {
       
    70         retVal = constructPlugin();
       
    71         if (NULL != retVal){
       
    72             new XQPluginHandle(iDtor_ID_Key.iUid, retVal);
       
    73             iDtor_ID_Key = KNullUid;
       
    74         }
       
    75     }
       
    76     return retVal;
       
    77 }
       
    78