appfoundation/appruntimemodel/src/hsruntimefactory.cpp
branchGCC_SURGE
changeset 105 e7325f632549
parent 81 5ef31a21fdd5
parent 104 9b022b1f357c
--- a/appfoundation/appruntimemodel/src/hsruntimefactory.cpp	Fri Jun 11 16:25:06 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  HsRuntime factory.
-*
-*/
-
-
-#include "hsruntimefactory.h"
-#include "hsruntimefactory_p.h"
-#include "hsruntimeprovidermanifest.h"
-#include "hstest_global.h"
-
-#include <QStringList>
-#include <QDir>
-#include <QPluginLoader>
-
-
-HsRuntimeFactoryPrivate::HsRuntimeFactoryPrivate(HsRuntimeFactory* aPublic)
-    : QObject(aPublic),
-      mQ(aPublic)
-{
-
-}
-
-
-HsRuntimeFactoryPrivate::~HsRuntimeFactoryPrivate()
-{
-
-}
-
-QList<HsRuntimeToken> HsRuntimeFactoryPrivate::runtimes()
-{
-    QStringList pluginPaths;
-
-    //Check plugin dirs from root of different drives
-    QFileInfoList drives = QDir::drives();
-    for(int i=0; i < drives.count(); i++)
-    {
-        QFileInfo drive = drives.at(i);
-        QString driveLetter = drive.absolutePath();
-        QString path = driveLetter + mPluginManifestDirectory;
-        if(QDir(path).exists())
-        {
-            pluginPaths << path;
-        }
-    }
-
-    //Check plugin dir relative to current dir
-    if(QDir(mPluginManifestDirectory).exists() && !pluginPaths.contains(QDir(mPluginManifestDirectory).absolutePath()))
-    {
-        pluginPaths << mPluginManifestDirectory;
-    }
-
-    QList<HsRuntimeToken> runtimes;
-
-    for(int h=0; h < pluginPaths.count(); h++)
-    {
-        QString path = pluginPaths.at(h);
-        QDir dir(path);
-        QStringList filters("*.manifest");
-
-        for(int i=0; i < dir.entryList(filters, QDir::Files).count(); ++i)
-        {
-            QString fileName = dir.entryList(filters, QDir::Files).at(i);
-
-            HsRuntimeProviderManifest manifest;
-            manifest.loadFromXml(dir.absoluteFilePath(fileName));
-
-            if(manifest.loadOnQuery())
-            {
-                QList<HsRuntimeToken> tokens = manifest.runtimes();
-                for(int j=0; j < tokens.count(); ++j)
-                {
-                    HsRuntimeToken token = tokens.at(j);
-                    IHsRuntimeProvider* provider = loadProviderFromPlugin(token.mLibrary);
-                    if(provider)
-                    {
-                        runtimes << provider->runtimes();
-                        delete provider;
-                    }
-                }
-            }
-            else
-            {
-                runtimes << manifest.runtimes();
-            }
-        }
-    }
-    return runtimes;
-}
-
-HsRuntime* HsRuntimeFactoryPrivate::createRuntime(const HsRuntimeToken& aToken)
-{
-    IHsRuntimeProvider* provider = loadProviderFromPlugin(aToken.mLibrary);
-    if(!provider)
-    {
-        HSDEBUG("Runtime creation failed - No provider.")
-        return 0;
-    }
-
-    HsRuntime* runtime = provider->createRuntime(aToken);
-    delete provider;
-    if(!runtime)
-    {
-        HSDEBUG("Runtime creation failed.")
-    }
-    return runtime;
-}
-
-IHsRuntimeProvider* HsRuntimeFactoryPrivate::loadProviderFromPlugin(const QString& aPluginName)
-{
-    QStringList pluginPaths;
-
-    //Check plugin dirs from root of different drives
-    QFileInfoList drives = QDir::drives();
-    for(int i=0; i < drives.count(); i++)
-    {
-        QFileInfo drive = drives.at(i);
-        QString driveLetter = drive.absolutePath();
-        QString path = driveLetter + mPluginDirectory;
-        if(QDir(path).exists())
-        {
-            pluginPaths << path;
-        }
-    }
-
-
-    //Check plugin dir relative to current dir
-    if(QDir(mPluginManifestDirectory).exists() && !pluginPaths.contains(QDir(mPluginDirectory).absolutePath()))
-    {
-        pluginPaths << mPluginDirectory;
-    }
-
-    IHsRuntimeProvider* provider = 0;
-    QPluginLoader loader;
-    QObject* plugin = 0;
-
-    for(int i=0; i < pluginPaths.count(); i++)
-    {
-        QString path = pluginPaths.at(i);
-        QString fileName = QDir(path).absoluteFilePath(aPluginName);
-
-        loader.setFileName(fileName);
-        plugin = loader.instance();
-        provider = qobject_cast<IHsRuntimeProvider*>(plugin);
-        if(provider)
-        {
-            return provider;
-        }
-
-        //Don't leak memory if provider not IHsRuntimeProvider
-        if(plugin)
-        {
-            HSDEBUG("Runtime provider load - !provider, deleting plugin.")
-            delete plugin;
-        }
-    }
-
-    HSDEBUG("Runtime provider load failed - Not found.")
-    return 0;
-}
-
-/*!
-    \class HsRuntimeFactory
-    \ingroup group_hsruntimemodel
-    \brief Finds and creates home screen runtimes.
-
-    HsRuntime factory finds home screen runtimes from HsRuntime provider 
-    plugins. The search is done based on given plugin manifest
-    and plugin binary directories. Found runtimes are returned as
-    a list of HsRuntime tokens. HsRuntime factory creates an instance of
-    a HsRuntime base on a HsRuntime token that is given to it.
-*/
-
-/*!
-    Constructor.
-    
-    \a aPluginManifestDirectory Directory that contains plugin manifests.
-    \a aPluginDirectory Directory that contains plugin binaries.
-    \a aParent Parent object.
-*/
-HsRuntimeFactory::HsRuntimeFactory(const QString& aPluginManifestDirectory,
-                               const QString& aPluginDirectory,
-                               QObject* aParent)
-    : QObject(aParent)
-{
-    mD = new HsRuntimeFactoryPrivate(this);
-    mD->mPluginManifestDirectory = aPluginManifestDirectory;
-    mD->mPluginDirectory = aPluginDirectory;
-}
-
-/*!
-    Destructor.    
-*/
-HsRuntimeFactory::~HsRuntimeFactory()
-{
-
-}
-
-/*!
-    Returns found runtimes as a list of HsRuntime tokens.    
-*/
-QList<HsRuntimeToken> HsRuntimeFactory::runtimes()
-{
-    return mD->runtimes();
-}
-
-/*!
-    Creates and returns a HsRuntime based on the given token.    
-    \a aToken Identifies the HsRuntime to be created.
-
-    Return The created HsRuntime.
-*/
-HsRuntime* HsRuntimeFactory::createRuntime(const HsRuntimeToken& aToken)
-{
-    return mD->createRuntime(aToken);
-}