--- /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
+