--- a/smf/smfservermodule/smfserver/server/smfserver.h Fri May 21 15:40:57 2010 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-/**
-* Copyright (c) 2010 Sasken Communication Technologies Ltd.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "{License}"
-* which accompanies this distribution, and is available
-* at the URL "{LicenseUrl}".
-*
-* Initial Contributors:
-* Manasij Roy, Sasken Communication Technologies Ltd - Initial contribution
-*
-* Contributors:
-*
-* Description:
-* SMF Server component which handles the client requests and delegates them propoerly to the appropriate component
-*
-*/
-
-#ifndef SMFSERVER_H
-#define SMFSERVER_H
-#include <QObject>
-#include<QMap>
-//SMF wide global const and macros, to be shared among SMF components as well as SMF aware apps
-#include "smfglobal.h"
-#include "smfprovider.h"
-#include "smftransportmanager.h" // Transport Manager
-/*
-* Forward declarations
-* Other components of the SMF
-*/
-class SmfTransportManager;
-class SmfPluginManager;
-class SmfDataStoreManager;
-class SmfSettingsAuthManager;
-class SmfClient;
-
-//For the time being, need to change later
-typedef QString SmfInterfaceID;
-//For the time being, need to change later
-typedef QString SmfPluginID;
-//TODO:- define proper enums after consulting with CM owner
-typedef int NotificationType;
-//Private implementation for different platforms
-#ifdef Q_OS_SYMBIAN
-class SmfServerSymbian;
-class SmfServerSymbianSession;
-#else
-class SmfServerQt;
-class SmfServerQtSession;
-#endif
-#include "smfcontact.h"
-#ifdef NO_OTHER_MODULES
-#include <QTimer>
-#include <QTextStream>
-#endif
-/**
- * SmfServer manages the client requests and delegates them to the appropriate SMF component,
- * service the clients asymchronously
- *
- */
-class SmfServer : public QObject
-{
- Q_OBJECT
-
-public:
-
- SmfServer(QObject* parent = 0);
-
- /**
- * Does the following,-
- *First it'll check whether server is already running, if already running it'll
- *simply return
- *else
- *it'll start the server exe and initialize all other SMF components
- *returns whether server is started successfully or not
- */
- bool startServer();
-
- ~SmfServer(){}
-
-public:
- /*
- * Request the Credential and Settings manager to check whether client has
- * been authorized previously.
- * SmfClientAuthID may be same as SID of the client which can be retrieved
- * if using Symbian Client-Server private implementation. Not supported for
- * other platforms
- */
- bool isClientAuthorized(SmfClientAuthID clientID);
-
- /*
- * In case the client is yet to be authorized, it starts the authorization
- * process by triggering Credential Manager.
- * The SLOT clientAuthorizationFinished is called once its done.
- * SmfClientAuthID may be same as SID of the client which can be retrieved
- * if using Symbian Client-Server private implementation. Not supported for
- * other platforms.
- */
- void authorizeClient(SmfClientAuthID clientID);
-
- /*
- * Requests Plugin Manager to get a list of plugin IDs who implement
- * the interface interfaceID.
- * This is used got SmfClient::GetServices () where we need a list of plugins
- */
- void getPlugins(SmfInterfaceID interfaceID, QMap<SmfPluginID,SmfProvider>& pluginIDMap);
- /**
- * Same as above, except this is used for rest of the requests where we need
- * a particular plugin
- */
- SmfPluginID getPlugin(SmfInterfaceID interfaceID,SmfProvider provider);
-
- /*
- * Requests the Credential Manager to filter out non-authorized plugin IDs
- * from the list and get authorized plugins into authList.
- */
- void getAuthorizedPlugins(QList<SmfPluginID>& list,QList<SmfPluginID>& authList);
-
- /*
- * Prepares the transport.
- * What it'll do is not yet clear
- */
- void prepareTransport();
- /**
- * DEbugging purpose only
- */
- void writeLog(QString log) const;
- /*
- * Delegates the request of the client (to get the data from SN sites)
- * to the Plugin Manager.
- * Once the Plugin Manager gets parsed response data it calls the SLOT
- * resultsAvailable().
- * pluginID is the Plugin to be used.
- * requestTypeID is the function codes(opcodes) used for message passing
- * betn clien-server.
- * Note:- Should there be an overloaded function which takes
- * list of SmfPluginID ?
- * Note:- SmfPluginManager will invoke resultsAvailable on session object once
- * it receives parsed data.
- */
-#ifdef Q_OS_SYMBIAN
- /**
- * Request the Plugin manager to get the data.
- * @param requestID Corresponds to a client's session
- * @param pluginID Plugin for which the request is intended
- * @param interfaceID Interface name
- * @param dataForPlugin Data to be sent for this request
- *
- */
- void getRequestedData(int requestID,SmfPluginID pluginID,SmfInterfaceID interfaceID, SmfRequestTypeID requestTypeID,QByteArray dataForPlugin = QByteArray());
-#else
- void getRequestedData(SmfServerQtSession* session,SmfPluginID pluginID, SmfRequestTypeID requestTypeID);
-#endif
-
-public slots:
-
- /*
- * This slot is called when Credential Manager is done with the autherizing
- * the client for the first time. See isClientAuthorized() and authorizeClient().
- * success specifies the success of the authorization, authID is the authentication
- * ID in case its not same as SID of the client.
- */
- void clientAuthorizationFinished(bool success,SmfClientAuthID authID );
-
- /*
- * This slot is called as a result of trigger from Plugin manager when the
- * parsed data is available.
- * @param requestID The request ID for which result is available
- * @param parsedData Serialized data
- */
- void resultsAvailable(int requestID,QByteArray* parsedData,SmfError error);
-
- /*
- * Services the client request by sending the requested data.
- * Note:- This will be handled by private implementation.
- */
- void serviceClient(QByteArray* parsedData);
-
-
- /*
- * This slot is called for every cleanup timer expiry, in this slot, we need
- * to call SmfDataStoreManager's API to refresh data store
- */
- void timerExpired(){};
-
- /*
- * This method is called every time timerExpired slot is trigerred
- * Fetches the last saved requests through Transport Manager and Plugin Manager
- * Who will save the last request (Tranport Manager or Data Store Manager) TBD later
- *
- */
- void runSavedRequest(){};
-
- /*
- * This slot is called when the data store updates are available as a result of
- * "runSavedRequest()".
- * Note:- The "10.4.1.11 updateDatastore" can be merged with this
- */
- void dataStoreUpdateAvailable(QByteArray* respData){Q_UNUSED(respData)};
-
- /**
- * Request the CM to get the authentication keys for the given pluginID
- */
- void getAuthenticationKeys(int pluginID,QStringList& keys,QStringList& urls);
-
- /**
- * Server calls this method when it receives message from the CM
- * that authentication keys for the pluginID has expired
- */
- void authenticationKeysExpired(NotificationType type,SmfPluginID id);
-signals:
- //None at the moment
-private:
-/*
- * Starts the clean-up timer for data store refresh, called from the "startServer()"
- * timeOutValue should be picked out from SmfSettingsAuthManager's API
- */
-bool startCleanupTimer(int timeOutValue){Q_UNUSED(timeOutValue) return true;};
-
-
-private:
- //private impl
-#ifdef Q_OS_SYMBIAN
- SmfServerSymbian* m_SmfServerPrivate;
-#else
- SmfServerQt* m_SmfServerPrivate;
-#endif
- //Handles of other SMF components
- SmfTransportManager* m_transportManager;
- SmfPluginManager* m_pluginManager;
- SmfDataStoreManager* m_dataStoreManager;
- SmfSettingsAuthManager* m_settingsAuthManager;
- SmfClient* m_smfClient;
-};
-
-
-#endif // SMFSERVER_H