diff -r e7aa27f58ae1 -r 578830873419 emailuis/nmailuiengine/inc/nmdatapluginfactory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/nmailuiengine/inc/nmdatapluginfactory.h Fri Apr 16 14:51:52 2010 +0300 @@ -0,0 +1,54 @@ +/* +* 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: +* +*/ + + +#ifndef NMDATAPLUGINFACTORY_H_ +#define NMDATAPLUGINFACTORY_H_ + +#include "nmuienginedef.h" + +class NmDataPluginInterface; +class QDir; +class QPluginLoader; + +/*! + \class NmDataPluginFactory + \brief The class NmDataPluginFactory provides interface to create NmDataPluginInterface + instance. + */ +class NMUIENGINE_EXPORT NmDataPluginFactory +{ +public: + static NmDataPluginFactory *instance(); + static void releaseInstance(NmDataPluginFactory *&instance); + NmDataPluginInterface *interfaceInstance(QObject *plugin); + NmDataPluginInterface *interfaceInstance(NmId mailboxId); + QObject *pluginInstance(NmId mailboxId); + QList *pluginInstances(); + QObject *loadPlugin( + const QDir &pluginDir, + const QString& pluginName); +private: + NmDataPluginFactory(); + virtual ~NmDataPluginFactory(); + static NmDataPluginFactory *mInstance; // owned + static int mReferenceCount; + static QList *mPluginArray; // owned + static QList mPluginLoaderArray; // owned +}; + +#endif /* NMDATAPLUGINFACTORY_H_ */