wvuing/IMPSConnectionUI/ServiceInc/MCnUiConnectionHandler.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/ServiceInc/MCnUiConnectionHandler.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2004 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:  Connection handler interface.
+*
+*/
+
+#ifndef __MCNUICONNECTIONHANDLER_H
+#define __MCNUICONNECTIONHANDLER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <PEngPresenceEngineConsts2.h>
+#include <impspresenceconnectionuiconstsng.h>
+
+
+
+//FORWARD DECLARATION
+class CCnUiSapStoreProxy;
+class CIMPSSAPSettings;
+class MCnUiConnectionHandler;
+class CPEngNWSessionSlotID2;
+class CPEngNWSessionSlot2;
+class MPEngNWSessionOperationObserver2;
+
+//DATA TYPES
+/**
+ * Sap connection status.
+ *
+ * @since 2.1
+ */
+enum TCnUiSapCnStatus
+    {
+    ECnUiSCS_NotConnected = 0,
+    ECnUiSCS_SapConnected = 1,
+    ECnUiSCS_SapConnected_PwdMissMatch = 2,
+    ECnUiSCS_AnotherSapConnected = 3,
+    ECnUiSCS_AnotherSapConnected_ClientsNotKnown = 4
+    };
+
+
+/**
+ * Factory method for connection handler construction.
+ *
+ * Global factory method to create concrete
+ * connection handler.
+ *
+ * @since 2.1
+ * @param aSapProxy The SAP store proxy to use.
+ * @return New MCnUiConnectionHandler instance.
+  */
+GLREF_D MCnUiConnectionHandler* CreateConnHandlerL( CCnUiSapStoreProxy& aSapProxy );
+
+
+
+
+// CLASS DECLARATION
+/**
+ * Connection Handler.
+ *
+ * Abstract interface to to handle connections
+ * and client logins.
+ *
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( MCnUiConnectionHandler )
+    {
+public: // SAP connection mutators
+
+    /**
+     * Opens the SAP connection.
+     *
+     * @since 2.1
+     * @param aSapToLogin The SAP where to login.
+     * @param aStatus Request status to complete
+     * when connection open is done.
+     */
+    virtual void OpenSapConnectionL(
+        const CIMPSSAPSettings& aSapToLogin,
+        CPEngNWSessionSlotID2& aNWSessionSlotID,
+        MPEngNWSessionOperationObserver2& aSlotOperationObserver ) = 0;
+
+    /**
+     * Cancels the SAP connection open.
+     *
+     * @since 2.1
+     */
+    virtual void CancelSapConnectionOpen( CPEngNWSessionSlotID2& aNWSessionSlotID ) = 0;
+
+
+    /**
+     * Closes the SAP connection.
+     *
+     * @since 2.1
+     */
+    virtual void CloseSapConnectionL(
+        CPEngNWSessionSlotID2& aNWSessionSlotID,
+        MPEngNWSessionOperationObserver2& aSlotOperationObserver ) = 0;
+
+
+    /**
+     * Cancels the SAP connection close.
+     *
+     * @since 2.1
+     */
+    virtual void CancelSapConnectionClose( CPEngNWSessionSlotID2& aNWSessionSlotID ) = 0;
+
+
+public: // Client login mutators
+
+    /**
+     * Sets the given client as logged in.
+     *
+     * @since 2.1
+     * @param aClient The client to login.
+     */
+    virtual void LoginTheClientL( TIMPSConnectionClient aClient ) = 0;
+
+
+    /**
+     * Sets the given client as logged out.
+     *
+     * @since 2.1
+     * @param aClient The client to logout.
+     */
+    virtual void LogoutTheClientL( TIMPSConnectionClient aClient ) = 0;
+
+
+    /**
+     * Sets the session slot.
+     * Note, that if successfull, ownership is transferred away from caller.
+     *
+     * @since 3.0
+     * @param aClient The client to logout.
+     */
+    virtual void SetSessionSlotL( CPEngNWSessionSlot2* aSlot ) = 0;
+
+public: // Status getters
+
+    /**
+     * Checks is the client logged in.
+     *
+     * @since 2.1
+     * @param aClient The client to check.
+     * @return ETrue if the client is logged in. Else EFalse.
+     */
+    virtual TBool TheClientLoggedInL( TIMPSConnectionClient aClient ) = 0;
+
+
+    /**
+     * Gets the logged in clients.
+     *
+     * @since 2.1
+     * @param aClients The array to put logged in clients.
+     */
+    virtual void GetLoggedInClientsL( RArray< TIMPSConnectionClient >& aClients ) = 0;
+
+
+    /**
+     * Getter for currently logged in SAP.
+     *
+     * Gets currently logged in SAP. If not
+     * currently logged in returns EFalse.
+     * Else returns ETrue and aSap is set to
+     * contain currently logged SAP's data.
+     *
+     * @since 2.1
+     * @param aSap When logged in, the SAP is filled
+     * with logged in SAP's details.
+     * @return Login status.
+     */
+    virtual TBool GetLoggedInSapL( CIMPSSAPSettings& aSap, TIMPSConnectionClient aClient ) = 0;
+
+
+    /**
+     * Gets SAP connection status.
+     *
+     * @since 2.1
+     * @param aSap The SAP to check.
+     * @return SAP connection status from TCnUiSapCnStatus.
+     */
+    virtual TCnUiSapCnStatus SapConnectionStatusL( const CIMPSSAPSettings& aSap,
+                                                   TIMPSConnectionClient aClient ) = 0;
+
+
+    /**
+     * Checks is there active network connection
+     * or not. Uses the pattern matching of
+     * network session slot ID. Assumes either
+     * full ID or just application ID.
+     *
+     * @since 2.1
+     * @return ETrue if there is a active NW connection.
+     * Else EFalse.
+     */
+    virtual TBool NwConnectionActiveL( CPEngNWSessionSlotID2& aIdToMatch ) = 0;
+
+
+    /**
+     * Gets service status from PEC Engine.
+     *
+     * @since 2.1
+     * @return Current service status.
+     */
+    virtual TPEngNWSessionSlotState ServiceStatusL(
+        const CPEngNWSessionSlotID2& aNWSessionSlotID ) = 0;
+
+
+public:  //Destructor
+
+    /**
+     * Virtual inline destructor.
+     * Allows destruction using this
+     * interface
+     */
+    virtual ~MCnUiConnectionHandler() {};
+    };
+
+
+#endif      //  __MCNUICONNECTIONHANDLER_H
+
+//  End of File
+