diff -r c39a6cfd1fb9 -r be09cf1f39dd smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfservermodule/smfserver/pluginmgr/smfpluginmanagerutil.h Tue May 18 17:37:12 2010 +0530 @@ -0,0 +1,260 @@ +/** + * Copyright (c) 2010 Sasken Communication Technologies Ltd. + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of the "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: + * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution + * + * Contributors: + * Manasij Roy, Nalina Hariharan + * + * Description: + * The Plugin Manager util class performs all plugin functional + * specific functionalities + * + */ + +#ifndef SMFPLUGINMANAGERUTIL_H_ +#define SMFPLUGINMANAGERUTIL_H_ + +#include +#include + +// Forward declaration +class SmfPluginManager; + +/** + * The Plugin Manager util class performs all plugin functional + * specific functionalities + */ +class SmfPluginManagerUtil : public QObject + { + Q_OBJECT + +public: + /** + * Method to get the instance of SmfPluginManagerUtil class + * @param aParent The parent object + * @return The instance of SmfPluginManagerUtil class + */ + static SmfPluginManagerUtil* getInstance ( QObject *aParent = 0 ); + + /** + * Destructor + */ + ~SmfPluginManagerUtil ( ); + +private: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfPluginManagerUtil ( QObject *aParent = 0 ); + +private: + /** + * Method called by Plugin Manager to create a web query. + * This method calls the respective plugin methods for creation of + * web queries using the aOperation and aInputData parameters. + * @param aInstance Instance of the loaded plugin that perform this operation + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @see smfglobal.h + */ + void createRequest ( QObject* aInstance, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + /** + * Method to create a web query to fetch contact details. + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createContactFetcherRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + /** + * Method to create a web query to do post operation on contacts + * (like scraps or messages) + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createContactPostRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + /** + * Method to create a web query to do music lyrics or subtitle search + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createMusicLyricsRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + + /** + * Method to create a web query to do music event search or event post operation + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createMusicEventsRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + /** + * Method to create a web query to do music search operation + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createMusicSearchRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + + /** + * Method to create a web query to do music service request operation + * like getting self profile or search profiles of other users + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createMusicServiceRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + + /** + * Method to create a web query to do music playlist related operation + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createMusicPlaylistRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + /** + * Method to create a web query to do gallery related operation + * @param aPlugin The instance of the loaded plugin that performs the + * contact fetch operation. + * @param aOperation The type of operation to be performed + * @param aInputData The data required to create the web query + * @param aReqData [out] The request data created by the plugin + * @param aResult [out] SmfPluginManagerResult, The result of the operation + * @return SmfPluginError + * @see smfglobal.h + */ + SmfPluginError createGalleryRequest ( QObject *aPlugin, + const SmfRequestTypeID &aOperation, + QByteArray &aInputData, + SmfPluginRequestData &aReqData, + SmfPluginManagerResult &aResult ); + + /** + * Method called by Plugin Manager when network response is available + * @param aInstance The instance of the loaded plugin that requested + * the network operation. + * @param aOperation The type of operation to be performed + * @param aTransportResult The result of Transport Operation + * @param aResponse The network response data + * @param aResult [out] An output parameter to the plugin manager + * containing the data parsed by the plugins + * @param aRetType [out] The Plugin return value + * @param aPageResult [out] The page information filled by the plugins + * @return SmfPluginManagerResult, The result of the operation + * @see smfglobal.h + */ + SmfPluginManagerResult responseAvailable ( SmfPluginBase *aInstance, + const SmfRequestTypeID &aOperation, + const SmfTransportResult &aTransportResult, + QByteArray *aResponse, + QVariant *aResult, + SmfPluginRetType &aRetType, + SmfResultPage &aPageResult ); + + /** + * Method to serialize the result of parsing (which is done by the + * plugins) to QByteArray to be sent to Smf server. + * @param aOperation The type of operation to be performed + * @param aResult The data to be serialized + * @param aDataStream Stream to be written + */ + void serializeResult ( const SmfRequestTypeID &aOperation, + QVariant* aResult, + QDataStream &aDataStream ); + + friend class SmfPluginManager; + +private: + /** + * The single instance of SmfPluginManagerUtil + */ + static SmfPluginManagerUtil* m_myInstance; + + }; + +#endif /* SMFPLUGINMANAGERUTIL_H_ */