--- a/homescreensrv_plat/servicemodel_api/servicefinder.h Fri Apr 16 15:16:09 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +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: HsService Finder
-*
-*/
-
-
-#ifndef SERVICEFINDER_H
-#define SERVICEFINDER_H
-
-#include <QObject>
-#include "serviceinterfaceid.h"
-#include "hsiserviceprovider.h"
-#include "servicemodel_global.h"
-
-class IHsServiceBase;
-class HsServiceFinderPrivate;
-class HsService;
-
-/**
- * @ingroup group_hsservicemodel group_service_api_candidates
- * @brief Helper class to search and create services.
- * HsService adapter is the component to find different platform service implementations
- * and offer interface to use services.
- */
-class HSSERVICEMODEL_EXPORT HsServiceFinder : public QObject
-{
- Q_OBJECT
-
-public:
-
- /**
- * Constructor.
- * @since S60 ?S60_version.
- * @param aPluginManifestDirectory Directory that contains plugin manifests.
- * @param aPluginDirectory Directory that contains plugin binaries.
- * @param aParent Parent object.
- */
- HsServiceFinder(const QString& aPluginManifestDirectory,
- const QString& aPluginDirectory,
- QObject* aParent = 0);
-
-
- /**
- * Destructor
- */
- virtual ~HsServiceFinder();
-
-public:
-
- /**
- * Get list of all services in the device implemented according the service architecture.
- * @return list of services (empty list if no services in the device).
- */
- QList<HsServiceToken> getServiceList();
-
- /**
- * Get list of all services in the device implemented according the service architecture.
- * @param aService for example 'BackupService'
- * @return list of matched services (empty list if no services in the device).
- * @code
- * if (!mServiceFinder)
- * {
- * mServiceFinder = new HsServiceFinder("c:/hsplugins","c:/hsplugins",this);
- * }
- * IBackupService* service = 0;
- * QList<HsServiceToken> serviceList = mServiceFinder->getServiceList(IBackupService::type().mImplementationId );
- * if ( serviceList.count() )
- * {
- * // use first found service
- * service = mServiceFinder->getService<IBackupService>(IBackupService::type(), serviceList.at(0));
- * }
- *
- * @endcode
- */
- QList<HsServiceToken> getServiceList(const QString &aService);
-
- /**
- * Get service. This method returns the service as a QObject.
- * @param aService for example 'HsService.Messaging'
- * @param aInterface for example 'IMessaging'
- * @return pointer to HsService object. Ownership is NOT transferred to caller.
- * @see releaseService
- * @code
- * if (!mServiceFinder)
- * {
- * mServiceFinder = new HsServiceFinder("c:/hsplugins","c:/hsplugins",this);
- * }
- * HsService* servicePtr = mServiceFinder->getService("HsService.Messaging", "IMessaging");
- * @endcode
- */
- HsService *getService(const QString &aService, const QString &aInterface);
-
- /**
- * Get service. This method returns the service as an abstract interface.
- * @param aInterfaceId service interface identifier
- * @param aPluginName which plugin implements this service, if empty, then first found interface is used.
- * @return pointer to service interface object. Ownership is NOT transferred to caller.
- *
- * Example in source code:
- * @code
- * if (!mServiceFinder)
- * {
- * mServiceFinder = new HsServiceFinder("c:/hsplugins","c:/hsplugins",this);
- * }
- * IBackupService* service = 0;
- * service = mServiceFinder->getService<IBackupService>(IBackupService::type(), "backupservice");
- * if ( service )
- * {
- * service->backupPage();
- * }
- * @endcode
- * where IBackupService is defined in header file:
- * @code
- * static const HsServiceInterfaceId Identifier=
- * {
- * 0,"persistanceservice"
- * };
- *
- * class IBackupService: public IHsServiceBase
- * {
- * public:
- * static inline const HsServiceInterfaceId& type()
- * {
- * return Identifier;
- * }
- * public:
- * virtual void backupPage() = 0;
- * virtual IHsServiceBase* resolveService(const HsServiceInterfaceId& aType) = 0;
- * ... other possible API functions
- * @endcode
- * @see more details in example backupservice implementation, IBackupService, PersistanceService...
- */
- template<class T> T *getService(const HsServiceInterfaceId &aInterfaceId, const QString &aPluginName)
- {
- return static_cast<T*>(getService(aInterfaceId, aPluginName));
- }
-
- /**
- * Get service. This method returns the service as an abstract interface.
- * @param aInterfaceId service interface identifier
- * @param aToken which plugin implements this service
- * @return pointer to service interface object. Ownership is NOT transferred to caller.
- *
- * @code
- * if (!mServiceFinder)
- * {
- * mServiceFinder = new HsServiceFinder("c:/hsplugins","c:/hsplugins",this);
- * }
- * IBackupService* service = 0;
- * QList<HsServiceToken> serviceList = mServiceFinder->getServiceList(IBackupService::type().mImplementationId);
- * if ( serviceList.count() )
- * {
- * // use first found service
- * service = mServiceFinder->getService<IBackupService>(IBackupService::type(), serviceList.at(0));
- * }
- * if ( service )
- * {
- * service->backupPage();
- * }
- * @endcode
- */
- template<class T> T *getService(const HsServiceInterfaceId &aInterfaceId, const HsServiceToken &aToken)
- {
- return static_cast<T*>(getService(aInterfaceId, aToken));
- }
-
- /**
- * Get service. This method returns the service as an Base interface of the all services.
- * @param aInterfaceId service interface identifier
- * @param aPluginName which plugin implements this service
- * @return pointer to service interface object. Ownership is NOT transferred to caller.
- */
- IHsServiceBase *getService(const HsServiceInterfaceId &aInterfaceId, const QString &aPluginName);
-
- /**
- * Get service. This method returns the service as an Base interface of the all services.
- * @param aInterfaceId service interface identifier
- * @param aToken which plugin implements this service
- * @return pointer to service interface object. Ownership is NOT transferred to caller.
- */
- IHsServiceBase *getService(const HsServiceInterfaceId &aInterfaceId, const HsServiceToken &aToken);
-
- /**
- * Release service
- * @param aService service to be released and deleted. HsService is QObject based service.
- */
- void releaseService(HsService *aService);
-
- /**
- * Cancels asynchronous service requests.
- * @param aService QObject based service.
- */
- void cancel(HsService *aService);
-
-private:
-
- /**
- * The private implementation.
- */
- HsServiceFinderPrivate *mServiceFinderPrivate;
-
-};
-
-#endif