diff -r c39a6cfd1fb9 -r be09cf1f39dd smf/smfservermodule/smfclient/common/smfpluginutil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfservermodule/smfclient/common/smfpluginutil.h Tue May 18 17:37:12 2010 +0530 @@ -0,0 +1,126 @@ +/** + * 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 util class provides the information required for the + * plugins from Smf framework + * + */ + +#ifndef SMFPLUGINUTIL_H_ +#define SMFPLUGINUTIL_H_ + +#include +#include +#include +#include + +enum SmfSignatureMethod + { + HMAC_SHA1, + RSA_SHA1, + PLAINTEXT + }; + +enum SmfParsingMode + { + ParseForRequestContent, //Inline query format (foo=bar&bar=baz&baz=foo ...), suitable for POST requests. + ParseForInlineQuery, // Same as ParseForRequestContent, but prepends the string with a question mark - + // suitable for GET requests (appending parameters to the request URL) + ParseForHeaderArguments // HTTP request header format (parameters to be put inside a request header). + }; + +/** + * The Plugin util class provides the information required for the + * plugins from Smf framework + */ +class SMFCLIENT_EXPORT SmfPluginUtil + { +public: + /** + * Method to get the instance of SmfPluginUtil class + * @return The instance of SmfPluginUtil class + */ + static SmfPluginUtil* getInstance ( ); + + /** + * Destructor + */ + ~SmfPluginUtil ( ); + + /** + * Method called by plugins to get the handle to QJson library + * @return The QJson handle + */ + QJson::Parser* getJsonHandle( void ); + + /** + * Method called by plugins to get the OAuth Keys. The PM sends the + * keys only if the pluginID is that of a currently loaded plugin + * @param aKeys [out] The OAuth keys + * @param aRegToken The plugin's registration token + * @param aPluginID The ID of the plugin that requests for + * the OAuth keys + */ + void getAuthKeys( QMap &aKeys, + const QString aRegToken, + const QString aPluginID ); + + /** + * Method called by plugins to get the Nonce value + * @param aNonceString [out] The Nonce string + */ + void getNonce( QString &aNonceString ); + + /** + * Method called by plugins to generate a parameters string required to + * access Protected Resources using OAuth authorization. + * @param aRequestUrl The request URL + * @param aOperation The type of http operation + * @param aToken The access token + * @param aTokenSecret The token secret + * @param aSignatureMethod The signature method to be used + * @param aParams A map of parameters to its values + * @param aMode The mode of creation of the request + * @return The cretd parameter string + */ + QByteArray createParameterString( const QString &aRequestUrl, + QNetworkAccessManager::Operation aOperation, + const QByteArray &aToken, + const QByteArray &aTokenSecret, + const SmfSignatureMethod aSignatureMethod, + const QMultiMap &aParams, + const SmfParsingMode aMode); + +private: + /** + * Constructor with default argument + */ + SmfPluginUtil ( ); + + +private: + /** + * The single instance of SmfPluginUtil + */ + static SmfPluginUtil* m_myInstance; + + /** + * The instance of QJson::Parser + */ + QJson::Parser *m_jsonParser; + + }; + +#endif /* SMFPLUGINUTIL_H_ */