smf/inc/common/smfglobal.h
changeset 3 0446eb7b28aa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/inc/common/smfglobal.h	Thu Apr 15 15:35:36 2010 +0530
@@ -0,0 +1,284 @@
+/**
+ * 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 smfglobal.h files contains all global data common to Smf framework
+ *
+ */
+
+#ifndef SMFGLOBAL_H_
+#define SMFGLOBAL_H_
+
+#include <QBuffer>
+#include <QNetworkRequest>
+#include <QNetworkAccessManager>
+
+/**
+ * Exact definition to be decided later
+ */
+#define SMF_SERVICE_NAME(INTERFACE,INTERFACENAME)
+
+/**
+ * Indicates first page for a web query
+ */
+const int SMF_FIRST_PAGE=0;
+
+/**
+ * Default value for per page item for web queries
+ */
+const int SMF_ITEMS_PER_PAGE=10;
+
+
+/**
+ * Enum declaration for Network status information
+ */
+enum SmfNetworkStatus
+	{
+	SmfNetworkConnectedHome = 0,
+	SmfNetworkConnectedRoaming,	// value = 1
+	SmfNetworkStateNotKnown,	// value = 2
+	SmfNetworkConnected,		// value = 3
+	SmfNetworkNotConnected		// value = 4
+	};
+
+/**
+ * Enum declaration for result of transport initialize operation
+ */
+enum SmfTransportInitializeResult
+	{
+	SmfTransportInitNetworkNotAvailable = 0,
+	SmfTransportInitRoamingNetworkUsageNotEnabled,	// value = 1
+	SmfTransportInitNoError							// value = 2
+	};
+
+/**
+ * The enumeration used to indicate result of transport to the plugins
+ */
+enum SmfTransportResult
+	{
+	SmfTransportOpNoError = 0,
+	SmfTransportOpConnectionRefusedError,
+	SmfTransportOpRemoteHostClosedError,
+	SmfTransportOpHostNotFoundError,
+	SmfTransportOpTimeoutError,
+	SmfTransportOpOperationCanceledError,
+	SmfTransportOpSslHandshakeFailedError,
+	SmfTransportOpProxyConnectionRefusedError,
+	SmfTransportOpProxyConnectionClosedError,
+	SmfTransportOpProxyNotFoundError,
+	SmfTransportOpProxyTimeoutError,
+	SmfTransportOpProxyAuthenticationRequiredError,
+	SmfTransportOpContentAccessDenied,
+	SmfTransportOpContentOperationNotPermittedError,
+	SmfTransportOpContentNotFoundError,
+	SmfTransportOpAuthenticationRequiredError,
+	SmfTransportOpContentReSendError,
+	SmfTransportOpProtocolUnknownError,
+	SmfTransportOpProtocolInvalidOperationError,
+	SmfTransportOpUnknownNetworkError,
+	SmfTransportOpUnknownProxyError,
+	SmfTransportOpUnknownContentError,
+	SmfTransportOpProtocolFailure,
+	SmfTransportOpUnknownError,
+	SmfTransportOpIAPChanged,
+	SmfTransportOpCancelled
+	};
+
+/**
+ * The enumeration used to indicate result of plugin manager operations
+ */
+enum SmfPluginManagerResult
+	{
+	SmfPluginNoError = 0,
+	SmfPluginNotFound,
+	SmfPluginNotLoaded,
+	SmfPluginLoaded,
+	SmfPluginLoadError,
+	SmfPluginAuthorised,
+	SmfPluginNotAuthorised,
+	SmfPluginRequestCreated,
+	SmfPluginRequestCreationFailed,
+	SmfPluginUnknownService,
+	SmfPluginRequestSendingFailed,
+	SmfPluginSOPCheckFailed,
+	SmfPluginServiceError,
+	SmfPluginResponseParsed,
+	SmfPluginResponseParseFailure,
+	SmfPluginSendRequestAgain,
+	SmfPluginUnknownError
+	};
+
+
+/**
+ * The enumeration used to denote errors reported by plugin
+ * Smf can't continue without handling these errors
+ */
+enum SmfPluginError
+	{
+	SmfPluginErrNone = 0, 
+	SmfPluginErrTooManyRequest,
+	SmfPluginErrRequestQuotaExceeded,
+	SmfPluginErrInvalidRequest,
+	SmfPluginErrUserNotLoggedIn,
+	SmfPluginErrAuthenticationExpired,
+	SmfPluginErrPermissionDenied,
+	SmfPluginErrInvalidApplication,
+	SmfPluginErrServiceUnavailable,
+	SmfPluginErrServiceTemporaryUnavailable,
+	SmfPluginErrFormatNotSupported, 
+	SmfPluginErrDataSizeExceeded  
+	};
+
+/**
+ * The enumeration used to track the plugin methods return type
+ */
+enum SmfPluginRetType
+	{
+	SmfSendRequestAgain = 0,
+	SmfRequestComplete,
+	SmfRequestError
+	};
+
+
+/**
+ * The enumeration used to indicate the type of network operation done
+ */
+enum SmfRequestOperation
+	{
+	SmfContactGetFriends = 0,
+	SmfContactGetFollowers,
+	SmfContactSearch,
+	SmfContactSearchNear,
+	SmfContactGetGroups,
+	SmfContactSearchInGroup,
+	SmfContactRetrievePosts,
+	SmfContactPost,
+	SmfContactUpdatePost,
+	SmfContactPostDirected,
+	SmfContactCommentOnAPost,
+	SmfContactPostAppearence,
+	SmfContactSharePost,
+	SmfMusicGetLyrics,
+	SmfMusicGetSubtitle,
+	SmfMusicGetEventsOnLoc,
+	SmfMusicGetVenueOnLoc,
+	SmfMusicGetEventsOnVenue,
+	SmfMusicPostEvents,
+	SmfMusicGetRecommendations,
+	SmfMusicGetTracks,
+	SmfMusicGetTrackInfo,
+	SmfMusicGetStores,
+	SmfMusicPostCurrentPlaying,
+	SmfMusicGetUserInfo,
+	SmfMusicSearchUser,
+	SmfMusicGetPlaylists,
+	SmfMusicGetPlaylistsOfUser,
+	SmfMusicAddToPlaylist,
+	SmfMusicPostCurrentPlayingPlaylist,
+	SmfPictureGetPictures,
+	SmfPictureDescription,
+	SmfPictureUpload,
+	SmfPictureMultiUpload,
+	SmfPicturePostComment
+	
+	};
+
+
+/**
+ * The structure used to hold the request created by the plugins
+ */
+struct SmfPluginRequestData
+	{
+	/**
+	 * Indicates the type of operation performed, like getting Friends 
+	 * list, upload image etc
+	 */
+	SmfRequestOperation iRequestType;
+	
+	/**
+	 * The QNetworkRequest that has to be filled up by the plugins
+	 */
+	QNetworkRequest iNetworkRequest;
+	
+	/**
+	 * The data to be posted in case of HTTP POST operation
+	 */
+	QBuffer *iPostData;
+	
+	/**
+	 * The type of HTTP transaction, like GET, POST etc
+	 */
+	QNetworkAccessManager::Operation iHttpOperationType;
+	
+	};
+
+/**
+ * The structure used to hold the request created by the plugins
+ */
+struct SmfResultPage
+	{
+	/**
+	 * The total number of items
+	 */
+	uint iTotalItems;
+	
+	/**
+	 * The number of items per page
+	 */
+	uint iItemsPerPage;
+	
+	/**
+	 * The total number of pages
+	 */
+	uint iTotalPages;
+	
+	/**
+	 * The current fetched page number
+	 */
+	uint iPageNum;
+	};
+
+/**
+ * The structure used to track the data usage of each plugins
+ */
+struct SmfPluginDataUsage
+	{
+	/**
+	 * Application that called the plugin
+	 */
+	QString iAppName;
+	
+	/**
+	 * Interface implemented by the plugin
+	 */
+	QString iInterfaceName;
+	
+	/**
+	 * The service provider
+	 */
+	QString iServiceProviderName;
+	
+	/**
+	 * number of bytes sent for this plugin
+	 */
+	uint iBytesSent;
+	
+	/**
+	 * number of bytes received for this plugin
+	 */
+	uint iBytesReceived;
+	
+	};
+
+#endif /* SMFGLOBAL_H_ */