diff -r 000000000000 -r 62f9d29f7211 webservices/wsutils/inc/senvtcptransportproperties.h --- /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 + + +// 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