main/glxaiwservicehandler.h
branchRCL_3
changeset 59 8e5f6eea9c9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/glxaiwservicehandler.h	Tue Aug 31 15:14:51 2010 +0300
@@ -0,0 +1,315 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+#ifndef GLXFETCHER_H
+#define GLXFETCHER_H
+
+#include <hbmainwindow.h>
+#include <xqserviceprovider.h>
+#include <QStringList>
+#include <xqsharablefile.h>
+#include <QModelIndex>
+#include <QAbstractItemModel>
+
+//FORWARD CLASS DECLARATION
+class GlxGetImageService;
+class GlxImageViewerService;
+class GlxStateManager;
+class CGlxImageViewerManager;
+class GlxGetImageServiceNSDI;
+class GlxGetImageServiceDSDI;
+
+class GlxExternalUtility;
+/**
+ * This is qthigway service handler class for all services provide by photos.
+ * 
+ */
+class GlxAiwServiceHandler: public HbMainWindow
+    {
+    Q_OBJECT
+public:
+    /**
+     * Constructor
+     */
+    GlxAiwServiceHandler();
+
+    /**
+     * Destructor.
+     */
+    ~GlxAiwServiceHandler();
+
+    /**
+     * launch image fetcher view
+     * @param viewTitle title for image fetcher
+     */
+	void launchFetcher(QString viewTitle);
+
+	/**
+     * launch image viewer 
+     * @param viewTitle title for image fetcher
+     */
+	void launchImageViewer(QString viewTitle);
+	
+public slots:  
+    /**
+     * This slot is called when image to be returned to fetcher 
+     * client is selected
+     * @param index index of the selected image
+     * @param model model for the current view where image is selected 
+     */
+    void itemSelected(const QModelIndex &  index,QAbstractItemModel & model);
+
+    /**
+     * This slot is called when service client is closed
+     * 
+     */
+    void handleClientDisconnect();
+    
+private:
+    /// state manager for the services
+	GlxStateManager *mStateMgr;
+	/// image fetcher service provider
+    GlxGetImageService* mFetcherService;
+    /// image fetcher service provider with new service name and depricated interface name
+    GlxGetImageServiceNSDI* mNSDIService;
+    /// image fetcher service provider with depricated name and depricated inaterface name
+    GlxGetImageServiceDSDI* mDSDIService;
+    GlxImageViewerService* mImageViewerService;
+    GlxExternalUtility *mUtil;
+    };
+
+/**
+ *  GlxGetImageService : Image fetcher service provider
+ * 
+ */	
+class GlxGetImageService : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    /**
+     * Constructor
+     */
+    GlxGetImageService( GlxAiwServiceHandler *parent = 0 );
+
+    /**
+     * Destructor.
+     */
+    ~GlxGetImageService();
+
+    /**
+     * check if service is active
+     */
+    bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
+    void complete( QStringList filesList);
+    
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    void fetch();
+    
+    /**
+     * slot for service provider to notify client about error
+     */
+    void fetchFailed( int errorCode );
+    
+private:
+    /**
+     * called to complete qthighway service
+     * @param fileList list of Uri to be returned to client
+     */
+    void doComplete( QStringList filesList);
+    
+private:
+    /// current service request id
+    int mImageRequestIndex;
+    /// service handler for all photos services
+    GlxAiwServiceHandler* mServiceApp;
+};
+
+/**
+ * Class Description
+ *  GlxGetImageServiceDSDI
+ *  Service provide for new service and depricated interface
+ */ 
+class GlxGetImageServiceNSDI : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    /**
+     * Constructor
+     */
+    GlxGetImageServiceNSDI( GlxAiwServiceHandler *parent = 0 );
+    /**
+     * Destructor.
+     */
+    ~GlxGetImageServiceNSDI();
+
+    /**
+     * check if service is active
+     */
+    bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
+    void complete( QStringList filesList);
+    
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    void fetch( QVariantMap filter , QVariant flag );
+
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    void fetch();
+    
+public slots:
+    /**
+     * slot for service provider to notify client about error
+     */
+    void fetchFailed( int errorCode );
+    
+private:
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
+    void doComplete( QStringList filesList);
+    
+private:
+    /// current service request id
+    int mImageRequestIndex;
+    /// service handler for all photos services
+    GlxAiwServiceHandler* mServiceApp;
+};
+
+/**
+ *  GlxGetImageServiceDSDI
+ *  Service provide for depricated service and depricated interface
+ */ 
+class GlxGetImageServiceDSDI : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    /**
+     * Constructor
+     */
+    GlxGetImageServiceDSDI( GlxAiwServiceHandler *parent = 0 );
+    /**
+     * Destructor.
+     */
+    ~GlxGetImageServiceDSDI();
+
+    /**
+     * check if service is active
+     */
+    bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
+    void complete( QStringList filesList);
+    
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    void fetch( QVariantMap filter, QVariant flag);
+    
+public slots:
+    /**
+     * slot for service provider to notify client about error
+     */
+    void fetchFailed( int errorCode );
+    
+private:
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
+    void doComplete( QStringList filesList);
+    
+private:
+    /// current service request id
+    int mImageRequestIndex;
+    /// service handler for all photos services
+    GlxAiwServiceHandler* mServiceApp;
+};
+
+/**
+ * Image viewer service provider 
+ */
+class GlxImageViewerService : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    /**
+     * Constructor
+     */
+    GlxImageViewerService( GlxAiwServiceHandler *parent = 0 );
+
+    /**
+     * Destructor.
+     */
+    ~GlxImageViewerService();
+
+    /**
+     * compete request 
+     * @param ok true id success else false
+     */
+    void complete(bool ok);
+
+    /**
+     * check if request is aSync
+     * @return true if async else false
+     */
+    bool asyncRequest() {return mAsyncRequest;}
+
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    bool view(QString file);
+
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    bool view(XQSharableFile file);
+
+private:
+    /// service handler for all photos services
+    GlxAiwServiceHandler* mServiceApp;
+    /// current request id
+    int mAsyncReqId;
+    bool mRetValue;
+    bool mAsyncRequest;
+    /// image viewer manager instance to get info regarding file
+    CGlxImageViewerManager* mImageViewerInstance;
+};
+
+    
+#endif //GLXFETCHER_H