webservices/wsconnection/inc/rsenserviceconnection.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsconnection/inc/rsenserviceconnection.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2002-2005 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: Header declaration
+*
+*/
+
+
+
+
+
+
+
+
+#ifndef R_SEN_SERVICE_CONNECTION_H
+#define R_SEN_SERVICE_CONNECTION_H
+
+// INCLUDES
+#include <e32base.h>
+#include <flogger.h>
+#include "senchunk.h"
+#include "senservicemanagerdefines.h" // internal Core\inc  - IPC enumerations
+#include "SenServiceConnection.h" 
+
+// FORWARD DECLARE
+class CSenSoapEnvelope;
+class CSenChunk;
+class RFile;
+class RSenServiceConnection;
+#ifdef __ENABLE_ALR__
+class MMobilityProtocolResp;
+#endif
+
+class TFourInts
+    {
+    public:
+    	TInt iInt1;
+    	TInt iInt2;
+    	TInt iInt3;
+    	TInt iInt4;
+	};
+
+NONSHARABLE_CLASS(CSenProgressResourceHandler): private CActive
+    {
+    friend class RSenServiceConnection;
+    private:
+    CSenProgressResourceHandler(TInt aTxnId, TBool aIncoming, TBool aIsSoap,
+            TInt aProgress, RSenServiceConnection* aOwner);
+    ~CSenProgressResourceHandler();
+    void DoCancel();
+    void RunL();
+    TInt SetBuffer(const TDesC8& aSoapOrCid);
+    
+    private:
+    TPckgBuf<TTransferProgress> iProgressData;
+    HBufC8* iSoapOrCid;
+    RSenServiceConnection* iOwner;
+    CSenProgressResourceHandler* iNext;
+    CSenProgressResourceHandler* iPrevious;
+    };
+
+NONSHARABLE_CLASS(CSenConnAgentSync): public CActive
+    {
+    friend class RSenServiceConnection;
+private:
+    CSenConnAgentSync();
+    ~CSenConnAgentSync();
+    void DoCancel();
+    void RunL();
+    void Start();
+    };
+
+// CLASS DECLARATION
+class RSenServiceConnection : public RSessionBase
+    {
+public:
+        /**
+        * C++ default constructor.
+        */
+        RSenServiceConnection(RFileLogger* aLog);
+        
+        // New functions
+        TInt Connect();
+        TVersion Version() const;
+        void Initialize( TRequestStatus& aStatus, 
+        				 TDes8& aErrPtr, 
+        				 TDes& aSessionId, 
+        				 CSenChunk& aSenChunk,
+                         TInt aSdLength,
+                         TInt aCpLength,
+                         TBool aHasAuthenticationCallback );
+
+
+        /**
+        * Transaction method is asynchronous
+        * 
+        * @param aStatus is the AO's status
+        * @param aErrPtr is where error will be written by server
+        * @param aTxnPtr is where transaction ID received from 
+        * transport (in the server-side) will be written by server
+        * @param aChunk is reference to new chunk, which will be opened
+        * RChunk (S60 3rd Edition) or RFile (S60 2nd Edition)
+        * @param aChunkName defines the global name for new RChunk (S60 2nd edition)
+        * @param aRequest is the message copied into RChunk
+        * @return KErrNone or system-wide error code. Note that if
+        * an error is returned, then SendReceive has not been called
+        * and caller (SC implementation class) does not need to call 
+        * SetActive()
+        */
+        void Transaction(TRequestStatus& aStatus, 
+                         TDes8& aErrPtr, 
+                         TDes8& aTxnPtr, 
+                         CSenChunk& aClientOp);
+
+        TInt SendMsgAndReceiveTxnId(CSenChunk& aClientOp);
+
+        TInt IsReady(TBool& aReady);
+        TInt HasFacet(TDesC8& aUri, TBool& aHasFacet);
+        TInt CompleteServerMessagesOnOff( TBool& aOnOff );
+        void SetLog(RFileLogger* aLog);
+        TInt RequestServiceDescription(TDes8& aSdLength);
+        TInt ReceiveServiceDescription(TDes8& aServiceDescription);
+        TInt StartTransaction();
+        TInt TransactionCompleted();
+        void CancelSession(TRequestStatus& aStatus);
+        void CancelRequests(TRequestStatus& aStatus);
+        void CancelRequest(TInt aTransactionID);
+   	    void DataTrafficDetails(TSenDataTrafficDetails& aDetails,TSenDataTrafficOperations& aOperation);  
+        TInt SetTransportPropertiesL(CSenChunk& aSenChunk);
+        TInt TransportPropertiesL(CSenChunk& aSenChunk);        
+
+        TInt MoveFile(CSenChunk& aSenChunk, 
+                      const TDesC8& aCid, 
+                      RFile& aFile);
+
+        TInt SendFileHandle(CSenChunk& aSenChunk, 
+                      		RFile& aFile);
+        TInt MoveChunk(CSenChunk& aSenChunk, 
+                       const TDesC8& aCid, 
+                       RChunk& aChunk,
+                       TInt aDataOffset, 
+                       TInt aDataSize);
+                       
+        TInt ConnectionID();
+        
+        TInt IdentityProviderL(CSenChunk& aSenChunk);
+        TInt RegisterIdentityProvider(TDesC8& aMessage);
+        void SetChannel(TInt aChannel);
+        
+        TInt RegisterTransferObserver(const TDesC* aServerName, TAny* aConnection);
+        // @return KErrNoMemory if out of heap
+        TInt SendFileProgress( TInt aTxnId, TBool aIncoming,TBool aIsSoap,
+                               const TDesC8& aSoapOrCid, TInt aProgress );
+        void Remove(CSenProgressResourceHandler* aResourceHandler);
+        void Close();
+        
+        TInt SearchIdentityProviderL(CSenChunk& aSenChunk, const TDesC8& aProviderId);
+        TInt RegisterAuthenticationObserver(const TDesC* aServerName, TAny* aConnection);
+        TInt RegisterCoBrandingObserver(const TDesC* aServerName, TAny* aConnection);
+#ifdef __ENABLE_ALR__
+	    TInt RegisterMobilityObserverL(const TDesC* aServerName, TAny* aConnection) ;
+	    TInt MigrateToPrefferedCarrierL(TBool &aUserChoice) ;
+	    TInt NewCarrierAcceptedL(TBool &aUserChoice) ;
+#endif
+
+    private: // Helper functions
+        RFileLogger* Log() const;
+
+    private: // Data
+        TInt                iMessageContextId; // locally (in SC scope) unique message context ID counter
+        RFileLogger*        iLog;
+        TPckgBuf<TFourInts> iFourInts;
+        CSenProgressResourceHandler* iFirst;
+        TInt                iTLSLogChannel;
+    };
+    
+#endif //R_SEN_SERVICE_CONNECTION_H
+