diff -r 238255e8b033 -r 84d9eb65b26f messagingapp/msgutils/unidatamodelloader/src/unidatamodelloader.cpp --- a/messagingapp/msgutils/unidatamodelloader/src/unidatamodelloader.cpp Fri Apr 16 14:56:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +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: Plugin Loader class - * - */ - -// System Includes - -#include -#include "debugtraces.h" - -#include -#include -#include "unidatamodelloader.h" -#include "unidatamodelplugininterface.h" - -//--------------------------------------------------------------- -//UniDataModelLoader::UniDataModelLoader() -//@see header -//--------------------------------------------------------------- -UniDataModelLoader::UniDataModelLoader() -{ -} - -//--------------------------------------------------------------- -//UniDataModelLoader::~UniDataModelLoader() -//@see header -//--------------------------------------------------------------- -UniDataModelLoader::~UniDataModelLoader() -{ - QMap::iterator mapItor; - for (mapItor = mDataModelPluginMap.begin(); mapItor - != mDataModelPluginMap.end(); ++mapItor) - { -#ifdef _DEBUG_TRACES_ - qDebug() << "Deleting Handler id:" << mapItor.key(); -#endif - UniDataModelPluginInterface* handler = mapItor.value(); - if (handler) - delete handler; - } - mDataModelPluginMap.clear(); -} - -//--------------------------------------------------------------- -//UniDataModelLoader::loadPlugins() -//@see header -//--------------------------------------------------------------- -void UniDataModelLoader::loadPlugins() -{ - // plugins directory setting for EMULATOR -#ifdef __WINS__ - QDir dir(QLibraryInfo::location(QLibraryInfo::PluginsPath)); - dir.cd("messaging\\datamodel"); -#else - // plugins directory setting for HARDWARE IMAGE - QDir dir("Z:\\resource\\qt\\plugins\\messaging\\datamodel"); -#endif - QString pluginPath = dir.absolutePath(); -#ifdef _DEBUG_TRACES_ - qDebug() << "Enter LoadPlugin path = " << pluginPath; -#endif - - // load the plugins - QFileInfoList entries = dir.entryInfoList(QDir::Files | QDir::Readable); - foreach (QFileInfo entry, entries) - { - QPluginLoader loader(entry.absoluteFilePath()); - // Check if plugin is already loaded... - if (!loader.isLoaded()) - { - UniDataModelPluginInterface* datamodelPlugin = qobject_cast< - UniDataModelPluginInterface*> (loader.instance()); - if (datamodelPlugin) - { - UniDataModelPluginInterface* pluginInstance = qobject_cast< - UniDataModelPluginInterface*> (datamodelPlugin->createInstance()); - QString mType = pluginInstance->messageType(); - QDEBUG_WRITE_FORMAT("plugin added to map", mType); - mDataModelPluginMap.insert(mType, pluginInstance); - } - } - - } -} - -//--------------------------------------------------------------- -//UniDataModelLoader::getDataModelPlugin() -//@see header -//--------------------------------------------------------------- -UniDataModelPluginInterface* UniDataModelLoader::getDataModelPlugin( - const QString& messageType) -{ - if (mDataModelPluginMap.contains(messageType)) - { - QDEBUG_WRITE_FORMAT("getDataModelPlugin messageType is present ", messageType); - return mDataModelPluginMap[messageType]; - } - return NULL; -}