--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsutils/inc/senvtcptransportproperties.h Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,607 @@
+/*
+* Copyright (c) 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 SEN_VTCP_TRANSPORT_PROPERTIES_H
+#define SEN_VTCP_TRANSPORT_PROPERTIES_H
+
+// INCLUDE
+#include <SenTransportProperties.h>
+
+
+// CONSTANTS
+_LIT8(KDeviceLCIDLocalName, "DeviceLCID");
+_LIT8(KConnectionBoundLocalName, "ConnectionBound");
+_LIT8(KConnectionTimeOutLocalName, "ConnectionTimeOut");
+
+// CLASS DECLARATION
+class CSenVtcpTransportProperties : public CSenTransportProperties
+ {
+ public:
+
+ /**
+ * Basic constructor.
+ * @return a pointer to new CSenVtcpTransportProperties class instance.
+ */
+ IMPORT_C static CSenVtcpTransportProperties* NewL();
+ /**
+ * Basic constructor.
+ * @return a pointer to new CSenVtcpTransportProperties class instance.
+ */
+ IMPORT_C static CSenVtcpTransportProperties* NewLC();
+
+ /**
+ * Basic constructor.
+ * @param aXmlUtf8
+ * @param aParser It is a XML reader
+ * @return a pointer to new CSenVtcpTransportProperties class instance.
+ */
+ IMPORT_C static CSenVtcpTransportProperties* NewL(const TDesC8& aXmlUtf8,
+ CSenXmlReader& aParser);
+
+ /**
+ * Basic constructor.
+ * @param aXmlUtf8
+ * @param aParser It is a XML reader
+ * @return a pointer to new CSenVtcpTransportProperties class instance.
+ */
+ IMPORT_C static CSenVtcpTransportProperties* NewLC(const TDesC8& aXmlUtf8,
+ CSenXmlReader& aParser);
+
+ /**
+ * Basic constructor.
+ * @param aElement
+ * @return a pointer to new CSenVtcpTransportProperties class instance.
+ */
+ IMPORT_C static CSenVtcpTransportProperties* NewL(const CSenElement& aElement);
+ /**
+ * Basic constructor.
+ * @param aElement
+ * @return a pointer to new CSenVtcpTransportProperties class instance.
+ */
+ IMPORT_C static CSenVtcpTransportProperties* NewLC(const CSenElement& aElement);
+
+ // From MSenProperties
+ virtual void SetReader(CSenXmlReader& aReader);
+ virtual TSenPropertiesClassType PropertiesClassType();
+ virtual void WriteToL(RWriteStream& aWriteStream);
+ virtual void ReadFromL(const TDesC8& aBuffer);
+ virtual HBufC8* AsUtf8L();
+ virtual HBufC8* AsUtf8LC();
+ virtual TBool IsSafeToCast(TSenPropertiesClassType aClass);
+ virtual MSenProperties* CloneL() const;
+
+ virtual TInt SetPropertyL(const TDesC8& aName, const TDesC8& aValue);
+ virtual TInt PropertyL(const TDesC8& aName, TPtrC8& aValue);
+ virtual TInt SetPropertyL(const TDesC8& aName, const TDesC8& aValue, const TDesC8& aType);
+ virtual TInt PropertyL(const TDesC8& aName, TPtrC8& aValue, TPtrC8& aType);
+ virtual TInt SetIntPropertyL(const TDesC8& aName, const TInt aValue);
+ virtual TInt IntPropertyL(const TDesC8& aName, TInt& aValue);
+ virtual TInt SetBoolPropertyL(const TDesC8& aName, const TBool aValue);
+ virtual TInt BoolPropertyL(const TDesC8& aName, TBool& aValue);
+
+ /**
+ * Gets the IAP ID.
+ * @param aCurrentIapId A TUint32 reference to be filled in with the
+ * value of the IAP ID.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt IapIdL(TUint32& aCurrentIapId);
+
+ /**
+ * Sets the IAP ID.
+ * @param aIapId is the new IAP ID.
+ */
+ virtual void SetIapIdL(TUint32 aIapId);
+
+ /**
+ * Gets the Proxy Port.
+ * @param aProxyPort A TInt reference to be filled in with the
+ * value of the Proxy Port.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt ProxyPortL(TInt& aProxyPort);
+
+ /**
+ * Sets the Proxy Port.
+ * @param aProxyPort is the new Proxy Port.
+ */
+ virtual void SetProxyPortL(TInt aProxyPort);
+
+ /**
+ * Gets the Proxy Host.
+ * @param aProxyHost A TPtrC8 reference to be filled in with the
+ * value of the Proxy Host.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt ProxyHostL(TPtrC8& aProxyHost);
+
+ /**
+ * Sets the Proxy Host.
+ * @param aProxyHost is the new Proxy Host.
+ */
+ virtual void SetProxyHostL(const TDesC8& aProxyHost);
+
+ /**
+ * Gets the Proxy Usage flag.
+ * @param aProxyUsage A TBool reference to be filled in with the
+ * value of the Proxy Usage.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt ProxyUsageL(TBool& aProxyUsage);
+
+ /**
+ * Sets the Proxy Usage flag.
+ * @param aProxyUsage is the new value for Proxy Usage.
+ */
+ virtual void SetProxyUsageL(TBool aProxyUsage);
+
+ /**
+ * Gets the information if SecureDialog is shown or not.
+ * @param aProxyUsage A TBool reference to be filled in with the
+ * value of the SecureDialog flag.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt SecureDialogL(TBool& aSecureDialog);
+
+ /**
+ * Sets the flag which controls showing of SecureDialog.
+ * @param aSecureDialog is the new value for SecureDialog flag.
+ */
+ virtual void SetSecureDialogL(TBool aSecureDialog);
+
+ /**
+ * Gets the UserAgent.
+ * @param aUserAgent A TPtrC8 reference to be filled in with the
+ * value of the UserAgent.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt UserAgentL(TPtrC8& aUserAgent);
+
+ /**
+ * Sets the UserAgent.
+ * @param aUserAgent is the new User Agent.
+ */
+ virtual void SetUserAgentL(const TDesC8& aUserAgent);
+
+
+ /**
+ * Gets the device ID
+ * @param aDeviceID A TPtrC8 reference to be filled in with the
+ * value of the Device ID.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt DeviceIDL(TPtrC8& aDeviceID);
+
+ /**
+ * Sets the Device ID.
+ * @param aDeviceID is the new Device ID.
+ */
+ virtual void SetDeviceIDL(const TDesC8& aDeviceID);
+
+ /**
+ * Gets the Action of message
+ * @param aAction A TPtrC8 reference to be filled in with the
+ * value of the Action.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt SoapActionL(TPtrC8& aAction);
+
+ /**
+ * Sets the Action.
+ * @param aAction is the new Soap Action.
+ */
+ virtual void SetSoapActionL(const TDesC8& aAction);
+
+ /**
+ * Apply binding.
+ * @param aSoapVersion is the version of Soap (1.1 or 1.2).
+ */
+ virtual void ApplyBindingL(TSOAPVersion aSoapVersion);
+
+ /**
+ * Gets the device LCID
+ * @param aDeviceLCID A TPtrC8 reference to be filled in with the
+ * value of the Device LCID.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt DeviceLCIDL(TPtrC8& aDeviceLCID);
+
+ /**
+ * Sets the Device LCID.
+ * @param aDeviceLCID is the new Device LCID.
+ */
+ virtual void SetDeviceLCIDL(const TDesC8& aDeviceLCID);
+
+ /**
+ * Gets connection bound mode
+ * @param aConnectionBound A boolean reference used to return the
+ * connection value (ETrue if bounded).
+ * With virtual TCP, default is EFalse
+ * (unbound == persistant connection).
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt ConnectionBoundL(TBool& aConnectionBound);
+
+ /**
+ * Sets the connection bound mode.
+ * @param aConnectionBound is the connection bound mode
+ */
+ virtual void SetConnectionBoundL(const TBool& aConnectionBound);
+
+ /**
+ * Gets virtual connection timeout
+ * @param aConnectionTimeOut A TPtrC8 reference to be filled in with the
+ * value of the connection time out
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt ConnectionTimeOutL(TInt& aConnectionTimeOut);
+
+ /**
+ * Sets the connection time out
+ * @param aConnectionTimeOut is the connection time out
+ */
+ virtual void SetConnectionTimeOutL(const TInt& aConnectionTimeOut);
+
+ /**
+ * Gets download folder for incoming BLOB (binary large objects)
+ * @param aDownloadFolder - A TPtrC8 reference to be filled in with the
+ * value of the shared, public folder for downloaded
+ * content
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt DownloadFolderL(TPtrC8& aDownloadFolder);
+
+ /**
+ * Sets download folder for incoming BLOB (binary large objects)
+ * @param aDownloadFolder - shared, public folder for downloaded content
+ */
+ virtual void SetDownloadFolderL(const TDesC8& aDownloadFolder);
+
+ /**
+ * Gets filename of file attachment
+ * @param aCid - cid for filename
+ * @param aFileName - filename of file attachment with current cid
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt FileAttachmentL(const TDesC8& aCid, HBufC8*& aFileName);
+
+ /**
+ * Sets filename of file attachment
+ * @param aCid - cid for filename
+ * @param aFileName - filename of file attachment with current cid
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt SetFileAttachmentL(const TDesC8& aCid, const TDesC8& aFileName);
+
+ /**
+ * Gets namespace of Microsoft schema
+ * @param aMwsNamespace - namespace
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt MwsNamespaceL(TPtrC8& aMwsNamespace);
+
+ /**
+ * Sets namespace of Microsoft schema
+ * @param aMwsNamespace - namespace
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual void SetMwsNamespaceL(const TDesC8& aMwsNamespace);
+
+ /**
+ * Gets message ID
+ * @param aMessageId - is the id of the message
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt MessageIdL(TPtrC8& aMessageId);
+
+ /**
+ * Sets message ID. Typically, this property is set per each message, instead of
+ * applying the same message ID for whole consumer session (service connection)
+ * @param aMessageID - is the ID of the message
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual void SetMessageIdL(const TDesC8& aMessageId);
+
+ /**
+ * Gets one-way message mode.
+ * @param aOnewayMsgOnOff A TBool reference to be filled in with the
+ * value of the one-way message mode.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt OnewayMessageOnOffL(TBool& aOnewayMessageOnOff);
+
+ /**
+ * Sets the one-way message mode on/off. Typically, one-way
+ * messages are rarely used by default: instead, a request-
+ * response pair (consumer[request]<->[response]provider)
+ * transaction takes place.
+ * However, if one-way message mode is enabled, sending such
+ * message will typically result immediate callback from
+ * the transport (plug-in) itself. This means, that the
+ * actual service response from the provider is not being
+ * waited.
+ * Common use case to enable one-way message is when service
+ * connection is used in transmitting *responses* to notification
+ * request(s) that some remote consumer (from outside device) has
+ * sent earlier.
+ * Such notification requests may thus be received via hostlet
+ * connection (hc), and by enabling one-way message, once can reply
+ * via service connection, instead of calling hc->RespondL method.
+ * Furthermore, application might wish to enable one-way message
+ * mode to hostlet connection, if it is not interested of replying
+ * to these two-way notifications via hostlet connection, but wishes
+ * to use service connection instead.
+ * @param aOnewayMessageOnOff is the new value of one-way message mode.
+ */
+ IMPORT_C virtual void SetOnewayMessageOnOffL(TBool aOnewayMessageOnOff);
+
+
+ /**
+ * Destructor.
+ */
+ virtual ~CSenVtcpTransportProperties();
+
+ protected: // base class functions
+
+ virtual void BaseConstructL(const TDesC8& aLocalname,
+ const TDesC8& aXml,
+ CSenXmlReader* aParser = NULL);
+
+ virtual void BaseConstructL(const CSenElement& aElement);
+
+
+ public: // Extensions
+
+
+
+ /**
+ * Gets the (connection) heartbeat property value as int.
+ * @param aDelta A TInt reference to be filled in with the
+ * value of the heartbeat (in seconds).
+ * Positive value means that a heartbeat
+ * messages are sent to backend, keeping
+ * the socket connection open (longlived
+ * connection). Keeping heartbeat may be
+ * costy, but increases performance in
+ * scenarios, where multiple network
+ * transactions take place within short
+ * period (time window).
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ * KErrNotFound if shortlive connection defined
+ */
+ virtual TInt HeartbeatL(TInt& aDelta);
+
+
+ /**
+ * Sets the (connection) heartbeat property value as int.
+ * Note, that with some transports, like vTCP, the heartbeat
+ * can also be used to control connection modes (longlive
+ * vs. shortlive connection).
+ * Hertbeat value is called also as delta.
+ *
+ * Together with delta You can also set parameters Min & Max TTL
+ * Long and short connection is set in different way, below guider.
+ *
+ * To setup longlive connection:
+ * delta : user defined
+ * min TTL : If not specified then the default value of 90 sec will be used
+ * max TTL : If not specified then the default value 1800 sec will be used
+ *
+ * To setup shortlive connection:
+ * delta : -1
+ * min TTL : If not specified then the default value of 90 sec will be used
+ * max TTL : ignored
+ *
+ * So, providing a negative value
+ * (-1) can be utilized to disable heartbeat and to switch
+ * the connection mode to a short lived state. With vTCP
+ * transport, if heartbeat of -1 is set, the socket will be
+ * kept open only for effective timeout value (shortlived),
+ *
+ * @param aDelta TInt reference to be filled in with
+ * the value of the heartbeat (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt SetHeartbeatL(TInt aDelta);
+
+ /**
+ * Sets the (connection) Max TTL for longlive connection.
+ *
+ * @see SetHeartbeatL(TInt aDelta)
+ *
+ * @param aMaxTTL TInt reference to be filled in with
+ * the value of the max TTL (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt SetMaxTimeToLiveL(TInt aMaxTTL);
+
+ /**
+ * Gets the (connection) max TTL property value as int.
+ *
+ * @see SetHeartbeatL(TInt aDelta)
+ *
+ * @param aMaxTTL A TInt reference to be filled in with the
+ * value of the max TTL (in seconds).
+ *
+ * @return KErrNotFound if shortlive connection defined
+ * KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt MaxTimeToLiveL(TInt& aMaxTTL);
+
+ /**
+ * Sets the (connection) Min TTL
+ *
+ * @see SetHeartbeatL(TInt aDelta)
+ *
+ * @param aMaxTTL TInt reference to be filled in with
+ * the value of the min TTL (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt SetMinTimeToLiveL(TInt aMinTTL);
+
+ /**
+ * Gets the (connection) min TTL property value as int.
+ *
+ * @see SetHeartbeatL(TInt aDelta)
+ *
+ * @param aMinTTL A TInt reference to be filled in with the
+ * value of the min TTL (in seconds).
+ *
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt MinTimeToLiveL(TInt& aMinTTL);
+
+ public:
+ /**
+ * Sets the SNAP ID.
+ * @param aSnapId is the new SNAP ID.
+ */
+ virtual void SetSnapIdL(TUint32 aSnapId);
+
+ /**
+ * Gets the SNAP ID.
+ * @param aCurrentSnapId A TUint32 reference to be filled in with the
+ * value of the SNAP ID.
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ virtual TInt SnapIdL(TUint32& aCurrentSnapId);
+ /**
+ * Sets the (LongLived Retry) Long Lived Retry property value as int.
+ * Note, that with some transports, like vTCP, the RetryMaxTTL
+ * can also be used to control only long lived connection retry modes
+ * RetryMaxTTL value is called also as delta.
+ * Together with delta You can also set parameters RetryMinTTL & RetryMaxTTL
+ * Long and short connection is set in different way, below guider.
+ * @param aDelta TInt reference to be filled in with
+ * the value of the RetryMaxTTL (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt SetMaxRetryTTLL(TInt aMaxRetryTTL);
+
+ /**
+ * Gets the (Long Lived Retry)RetryMaxTTL property value as int.
+ * @param aDelta A TInt reference to be filled in with the
+ * value of the RetryMaxTTL (in seconds).
+ * Positive value means that a RetryMaxTTL
+ * messages are sent to backend, keeping
+ * the socket connection open (longlived
+ * connection). Keeping RetryMaxTTL may be
+ * costy, but increases performance in
+ * scenarios, where multiple network
+ * transactions take place within short
+ * period (time window).
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ * KErrNotFound if shortlive connection defined
+ */
+ IMPORT_C virtual TInt MaxRetryTTLL(TInt& aMaxRetryTTL);
+
+
+ /**
+ * Sets the (LongLived Retry) RetryDelta
+ *
+ * @see SetMaxRetryTTLL(TInt aDelta)
+ *
+ * @param aMaxTTL TInt reference to be filled in with
+ * the value of the min TTL (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt SetRetryDeltaTimeoutL(TInt aTimeout);
+
+ /**
+ * Gets the (LongLived Retry) RetryDelta
+ *
+ * @see SetMaxRetryTTLL(TInt aDelta)
+ *
+ * @param aMaxTTL TInt reference to be filled in with
+ * the value of the min TTL (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt RetryDeltaTimeoutL(TInt& aTimeout);
+
+ /**
+ * Sets the (LongLived Retry) RetryMinTTL
+ *
+ * @see SetMaxRetryTTLL(TInt aDelta)
+ *
+ * @param aMaxTTL TInt reference to be filled in with
+ * the value of the min TTL (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt SetMinRetryTTLL(TInt aMinRetryTTL);
+
+ /**
+ * Gets the (LongLived Retry) RetryMinTTL
+ *
+ * @see SetMaxRetryTTLL(TInt aDelta)
+ *
+ * @param aMaxTTL TInt reference to be filled in with
+ * the value of the min TTL (in seconds)
+ * @return KErrNone if no error, or some of the system
+ * wide error codes.
+ */
+ IMPORT_C virtual TInt MinRetryTTLL(TInt& aMinRetryTTL);
+
+ protected:
+ /**
+ * Constructor.
+ */
+ CSenVtcpTransportProperties();
+ };
+
+#endif // SEN_VTCP_TRANSPORT_PROPERTIES_H