IMPSengine/engsrv/inc/impscspsessionapi.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IMPSengine/engsrv/inc/impscspsessionapi.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,287 @@
+/*
+* 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:  This file defines an interface for sending and receiving data
+*               from CSP session as well as opening and closing methods.
+*
+*
+*/
+
+#ifndef WV_CSPSESSION_API_H
+#define WV_CSPSESSION_API_H
+
+//  INCLUDES
+#include "impsservercommon.h"
+
+// FORWARD DECLARATRIONS
+class CImpsFields;
+class TImpsServices;
+
+// CLASS DECLARATIONS
+
+/**
+* MImpsDataReceiver
+*
+* Abstract interface for handling responses from CSP Sessoin.
+*/
+
+class MImpsCSPSession
+    {
+
+    public: // New functions
+
+        /**
+        * Login WV server
+        * @param aUser User-id  (max 50 characters)
+        * @param aPsw password  (max 50 characters)
+        * @param aClientId client id used to log in server.
+        *        The client-id having prefix '+' or number is considered
+        *        as MSISDN number (E.164),
+        *        otherwise it is handled as URL (max 200 character).
+        *        This MAY be used for CIR addressing if SAP is not able to
+        *        detect MSISDN number in other way
+        * @param aServer SAP URI, may include port number
+        * @param aAP CommDb id for access point
+        * @param aAnyAP ETrue if any other open access point is accepted
+        * @param aKey1 future option
+        * @param aKey2 future option
+        * @param aExpiryTime expiry time of this request
+        * @param aReactive reactive presence auth negotiation
+        * @return TID
+        */
+        virtual TPtrC LoginL(
+            const TDesC& aUser,
+            const TDesC& aPassword,
+            const TDesC& aClientId,
+            const TDesC& aSAP,
+            TUint32 aAP,
+            const TDesC& aKey1,
+            const TDesC& aKey2,
+            TTime aExpiryTime,
+            TBool aReactive ) = 0;
+
+        /**
+        * Logout SAP
+        * @param aCancel ETrue if login cancel functionaliy wanted
+        * @return TID
+        */
+        virtual TPtrC LogoutL( TBool aCancel ) = 0;
+
+        /**
+        * Receive terminal off_line/on_line indication
+        * @param aParam True if connections allowed, else False.
+        */
+        virtual void SetConnAllowed( TBool aParam ) = 0;
+
+        /**
+        * CIR message handler. OPa: Both server and MSession.
+        * @param aCookie entire session cookie message
+        */
+        virtual void CirMessageL( const TDesC8& aCookie ) = 0;
+
+        /**
+        * Send data from session current data to WV server.
+        * Login must have been done.
+        * @param aFields data
+        * @param aExpiry expiry time in seconds, if 0, then time in gerarated.
+        * @param aOwnerCh OUTPUT ETrue is ownership of aFields is changed
+        * @return transaction-id
+        */
+        virtual TPtrC SendDataL(
+            CImpsFields* aFields,
+            TInt aExpiry,
+            TBool& aOwnerChange ) = 0;
+
+        /**
+        * Callback for response from transport watcher
+        * @param aDataPtr data received. It must be set to NULL after data is consumed.
+        */
+        virtual void TransportResponseL( HBufC8** aDataPtr ) = 0;
+
+        /**
+        * Callback for error from transport watcher
+        * @param aTID transaction-id, 0 means undefined
+        * @param aError error code. KImpsErrorNoIAP means lost PDP context.
+        */
+        virtual void TransportErrorL(
+            const TDesC& aTID,
+            TInt aError ) = 0;
+
+        /**
+        * Cancel active data channel requests.
+        */
+        virtual void CancelData() = 0;
+
+        /**
+        * Close All. MServer::TransportStatus( NO_IAP ) is the result.
+        */
+        virtual void CloseAll() = 0;
+
+        /**
+        * Close PDP context only.
+        */
+        virtual void ClosePDP() = 0;
+
+        /**
+        * Open PDP context only.
+        * @return error code
+        */
+        virtual TInt OpenPDP() = 0;
+
+        /**
+        * Transport status change indicator
+        * @param aConnectionState  new status, on_line, off_line or no_iap
+        */
+        virtual void TransportStatus(
+            EImpsInternalStatus aConnectionState ) = 0;
+
+        /**
+        * Get next message to be sent.
+        * Validates first the expiry time and discards a message is necessary.
+        */
+        virtual void GetNextMessageL() = 0;
+
+        /**
+        * Send Poll request
+        */
+        virtual void SendPollL() = 0;
+
+        /**
+        * Send KeepAlive request
+        * @return TID of KeepAlive request
+        */
+        virtual TPtrC SendAliveL( ) = 0;
+
+        /**
+        * Send KeepAlive request when GPRS resumes
+        */
+        virtual void SendAliveInResume( ) = 0;
+
+        /**
+        * Is the server logging in curretly
+        * @return ETrue if log in active
+        */
+        virtual TBool IsLogging() = 0;
+
+        /**
+        * Is the server logged in
+        * @return ETrue if logged in
+        */
+        virtual TBool IsLogged() = 0;
+
+        /**
+        * Is the CSP session capabilities negotiated
+        * @return ETrue if negotiated
+        */
+        virtual TBool IsNegotiated() = 0;
+
+        /**
+        * Current User-id accessor
+        * @return UserId
+        */
+        virtual TPtrC UserId() = 0;
+
+        /**
+        * Current SAP accessor
+        * @return SAP
+        */
+        virtual TPtrC SAP() = 0;
+
+        /**
+        * Current CSP Session-id accessor
+        * @return Session-id
+        */
+        virtual TPtrC SID() = 0;
+
+        /**
+        * Current CSP Session password accessor
+        * @return password
+        */
+        virtual TPtrC Password() = 0;
+
+        /**
+        * active services accessor
+        * @return current WV services
+        */
+        virtual TImpsServices* Services() = 0;
+
+        /*
+        * Is engine shutting down
+        * @return ETrue if shutting down
+        */
+        virtual TBool IsShuttingDown() = 0;
+
+        /**
+        * Is there pendig login operation
+        * @return ETrue if yes
+        */
+        virtual TBool IsPendingLogin() = 0;
+
+        /**
+        * Cancel a transaction. OPa: Server myös.
+        * Removes request from server's transaction queue and
+        * asks transport to cancel the request too.
+        * @param aTID transaction id to identify the request.
+        */
+        virtual void CancelTrans( const TDesC& aTID ) = 0;
+
+        /**
+        * Send so many queued client requests as possible to transport.
+        */
+        virtual void DoSendAllQueuedL() = 0;
+
+        /**
+        * Do the internal logout routines immediately
+        */
+        virtual void DoLogout( ) = 0;
+
+        /**
+        * Ip-Cir-channel opened callback
+        */
+        virtual void CirChOpened() = 0;
+
+        /**
+        * Ip-Cir-channel error callback
+        */
+        virtual void CirChError() = 0;
+
+        /**
+        * Check exiparation of current requests and asks server to
+        * remove requests from client sessions if necessary
+        * @param sType service types
+        * @param aExpiry expiration time for requests
+        */
+        virtual void CheckExpiry(
+            TImpsEventType aType,
+            const TTime aExpiry  ) = 0;
+
+        /**
+        * Destructor
+        */
+        virtual void Destroy() = 0;
+
+        /**
+        * Maximum parser size
+        */
+        virtual TInt MaxParserSize() = 0;
+
+        /**
+        * Maximum IM message size
+        */
+        virtual TInt MaxMessageSize() = 0;
+    };
+
+
+#endif      // ?INCLUDE_H   
+
+// End of File