example/clientapi/smf/inc/smfplugins/base/smfpluginbase.h
changeset 2 86af6c333601
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/example/clientapi/smf/inc/smfplugins/base/smfpluginbase.h	Tue Apr 06 16:35:37 2010 +0530
@@ -0,0 +1,106 @@
+/**
+ * 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 SmfPluginBase class is the base class for all plugins.
+ *
+ */
+
+#ifndef SMFPLUGINBASE_H_
+#define SMFPLUGINBASE_H_
+
+#include <smfproviderbase.h>
+#include <QNetworkReply>
+#include <smfglobal.h>
+
+/**
+ * @ingroup smf_plugin_group
+ * The SmfPluginBase class is the base class for all plugins 
+ */
+class SmfPluginBase : public QObject
+	{
+	Q_OBJECT
+
+public:
+	/**
+	 * Constructor with default argument
+	 * @param aParent The parent object
+	 */
+	SmfPluginBase( QObject* aParent = 0 );
+	
+	/**
+	 * Destructor
+	 */
+	~SmfPluginBase( );
+
+	/**
+	 * Method to get the provider information
+	 * @return Instance of SmfProviderBase
+	 */
+	virtual SmfProviderBase* getProviderInfo( ) = 0;
+	
+	/**
+	 * Method to get the result for a network request.
+	 * @param aTransportResult The result of transport operation
+	 * @param aReply The QNetworkReply instance for the request
+	 * @param aResult [out] An output parameter to the plugin manager.If the 
+	 * return value is SmfSendRequestAgain, QVariant will be of type 
+	 * SmfPluginRequestData.
+	 * 
+	 * For SmfContactFetcherPlugin: If last operation was friends() or followers() 
+	 * or search() or searchInGroup() or searchNear(), aResult will be of type 
+	 * QList<SmfContact>. If last operation was groups(), aResult will be of 
+	 * type QList<SmfGroup>
+	 * For SmfPostProviderPlugin: If last operation was retrieve(), aResult will be 
+	 * of type QList<SmfPost>. If last operation was post() or updatePost() or 
+	 * postDirected() or commentOnAPost() or postAppearence(), aResult will be 
+	 * of type bool
+	 * For SmfLyricsServicePlugin: If last operation was lyrics(), aResult will 
+	 * be of type SmfLyrics. If last operation was subtitles(), aResult will 
+	 * be of type SmfSubtitle.
+	 * For SmfMusicEventsPlugin: If last operation was events(), aResult will 
+	 * be of type QList<SmfEvent>. If last operation was venues(), aResult 
+	 * will be of type QList<SmfPlace>. If last operation was postEvents(), 
+	 * aResult will be of type bool
+	 * For SmfMusicSearchPlugin: If last operation was recommendations() or 
+	 * tracks() or trackInfo(), aResult will be of type QList<SmfTrackInfo>. 
+	 * If last operation was stores(), aResult will be of type 
+	 * QList<SmfProvider>. If last operation was postCurrentPlaying(), 
+	 * aResult will be of type bool.
+	 * For SmfMusicServicePlugin: If last operation was userInfo(), aResult 
+	 * will be of type SmfMusicProfile. If last operation was searchUser(), 
+	 * aResult will be of type QList<SmfMusicProfile>.
+	 * For SmfPlaylistServicePlugin: If last operation was playlists() or 
+	 * playlistsOf(), aResult will be of type QList<SmfPlaylist>. If last 
+	 * operation was addToPlaylist() or postCurrentPlayingPlaylist(), 
+	 * aResult will be of type bool.
+	 * For SmfGalleryPlugin: If last operation was pictures(), aResult will 
+	 * be of type QList<SmfPicture>. If last operation was description(), 
+	 * aResult will be of type QString. If last operation was upload() or 
+	 * postComment(), aResult will be of type bool.
+	 * 
+	 * @param aRetType [out] SmfPluginRetType
+	 * @param aPageResult [out] The SmfResultPage structure variable
+	 */
+	virtual SmfPluginError responseAvailable( 
+			const SmfTransportResult aTransportResult, 
+			QNetworkReply *aReply, 
+			QVariant* aResult, 
+			SmfPluginRetType aRetType,
+			SmfResultPage &aPageResult ) = 0;
+	
+	};
+
+
+#endif /* SMFPLUGINBASE_H_ */