diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/senhttptransportproperties.h --- a/epoc32/include/mw/senhttptransportproperties.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/senhttptransportproperties.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,465 @@ -senhttptransportproperties.h +/* +* 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Http transport properties class declaration +* +*/ + +#ifndef SEN_HTTP_TRANSPORT_PROPERTIES_H +#define SEN_HTTP_TRANSPORT_PROPERTIES_H + +// INCLUDE +#include + +// CONSTANTS +_LIT8(KSenHttpAcceptHeaderDelimiter, ","); + +// Supported Http properties: + +//// -- session properties: +_LIT8(KHttpMethodLocalName, "HttpMethod"); +_LIT8(KHttpVersionLocalName, "HttpVersion"); + +//// -- HTTP headers names: +_LIT8(KContentTypeLocalName, "Content-Type"); +_LIT8(KAcceptLocalName, "Accept"); +_LIT8(KSlugLocalName, "Slug"); + +// Supported Http methods: +_LIT8(KHttpGet, "Get"); +_LIT8(KHttpPost, "Post"); +_LIT8(KHttpPut, "Put"); +_LIT8(KHttpDelete, "Delete"); + +// Supported Http versions: +_LIT8(KHttp10, "Http1.0"); +_LIT8(KHttp11, "Http1.1"); + +//NOTE: +/** In SendL(CSenSoapEnvelope& aMessage, const TDesC8& aProperties) + * or + * SubmitL(CSenSoapEnvelope& aMessage, const TDesC8& aProperties, HBufc8*& aResponseTO) + * aProperties could be "HTTP GET" or "HTTP DELETE" + * aMessage is a soap message or serialized XML. + * This scenario is not supported. + * + * These are the function calls get called during this scenario + * iHttpProperties->SetHttpHeaderL(const TDesC8& aHeaderName, const TDesC8& aValue); + * iHttpProperties->SetHttpMethodL(CSenHttpTransportProperties::ESenHttpGet); + * SendL(CSenSoapEnvelope& aMessage, const TDesC8& aProperties); +**/ + +// CLASS DECLARATION +class CSenHttpTransportProperties : public CSenTransportProperties + { + public: + /** + * HttpMethod Enumeration + */ + enum TSenHttpMethod + { + ESenHttpPut, + ESenHttpDelete, + ESenHttpGet, + ESenHttpPost + }; + /** + * HttpVersion Enumeration + */ + enum TSenHttpVersion + { + ESenHttp10, + ESenHttp11 + }; + /** + * Basic constructor. + * @return a pointer to new CSenHttpTransportProperties class instance. + */ + IMPORT_C static CSenHttpTransportProperties* NewL(); + /** + * Basic constructor. + * @return a pointer to new CSenHttpTransportProperties class instance. + */ + IMPORT_C static CSenHttpTransportProperties* NewLC(); + + /** + * Basic constructor. + * @param aXmlUtf8 + * @param aParser It is a XML reader + * @return a pointer to new CSenHttpTransportProperties class instance. + */ + IMPORT_C static CSenHttpTransportProperties* NewL(const TDesC8& aXmlUtf8, + CSenXmlReader& aParser); + + /** + * Basic constructor. + * @param aXmlUtf8 + * @param aParser It is a XML reader + * @return a pointer to new CSenHttpTransportProperties class instance. + */ + IMPORT_C static CSenHttpTransportProperties* NewLC(const TDesC8& aXmlUtf8, + CSenXmlReader& aParser); + + /** + * Basic constructor. + * @param aElement + * @return a pointer to new CSenHttpTransportProperties class instance. + */ + IMPORT_C static CSenHttpTransportProperties* NewL(const CSenElement& aElement); + /** + * Basic constructor. + * @param aElement + * @return a pointer to new CSenHttpTransportProperties class instance. + */ + IMPORT_C static CSenHttpTransportProperties* NewLC(const CSenElement& aElement); + + /** + * 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 information if IAPDialog is shown or not. + * @param aIAPDialog A TBool reference to be filled in with the + * value of the IAPDialog flag. + * @return KErrNone if no error, or some of the system + * wide error codes. + */ +// virtual TInt IAPDialogL(TBool& aIAPDialog); + + /** + * Sets the flag which controls showing of IAPDialog. + * @param aIAPDialog is the new value for IAPDialog flag. + */ +// virtual void SetIAPDialogL(TBool aIAPDialog); + + /** + * Gets the Content Type. + * @param aContentType A TPtrC8 reference to be filled in with the + * value of the Content Type. + * @return KErrNone if no error, or some of the system + * wide error codes. + */ + virtual TInt ContentTypeL(TPtrC8& aContentType); + + /** + * Sets the Content Type. + * @param aContentType is the new Content Type. + */ + virtual void SetContentTypeL(const TDesC8& aContentType); + + /** + * Gets the SoapAction. + * @param aSoapAction A TPtrC8 reference to be filled in with the + * value of the SoapAction. + * @return KErrNone if no error, or some of the system + * wide error codes. + */ + virtual TInt SoapActionL(TPtrC8& aSoapAction); + + /** + * Sets the Soap Action. + * @param aSoapAction is the new Soap Action. + */ + virtual void SetSoapActionL(const TDesC8& aSoapAction); + + /** + * 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 Accept. + * @param aAccept A TPtrC8 reference to be filled in with the + * value of the Accept. + * @return KErrNone if no error, or some of the system + * wide error codes. + */ + virtual TInt AcceptL(TPtrC8& aAccept); + + /** + * Sets the Accept. + * @param aAccept is the new Accept value. + */ + virtual void SetAcceptL(const TDesC8& aAccept); + + /** + * Gets the Http method. + * @param aHttpMethod A TSenHttpMethod reference to be filled in with + * the value of the Http method. + * @return KErrNone if no error, or some of the system + * wide error codes. + */ + virtual TInt HttpMethodL(TSenHttpMethod& aHttpMethod); + + /** + * Sets the Http method. + * @param aHttpMethod is the new Http method. + */ + virtual void SetHttpMethodL(TSenHttpMethod aHttpMethod); + + /** + * Gets the Http version. + * @param aHttpVersion A TSenHttpVersion reference to be filled in with + * the value of the Http version. + * @return KErrNone if no error, or some of the system + * wide error codes. + */ + virtual TInt HttpVersionL(TSenHttpVersion& aHttpVersion); + + /** + * Sets the Http version. + * @param aHttpVersion is the new Http version. + */ + virtual void SetHttpVersionL(TSenHttpVersion aHttpVersion); + + /** + * Gets the Http header. + * @param aHeaderName Name of the Http header. + * @param aValue A TPtrC8 reference to be filled in with the + * value of the Http header. + * @return KErrNone if no error, or some of the system + * wide error codes. + */ + virtual TInt HttpHeaderL(const TDesC8& aHeaderName, TPtrC8& aValue); + + /** + * Sets the Http header. + * @param aHeaderName Name of the Http header. + * @param aValue Value of the Http header + */ + virtual void SetHttpHeaderL(const TDesC8& aHeaderName, + const TDesC8& aValue); + + + /** + * 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 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); + + /** + * Apply binding. + * @param aSoapVersion is a soap1.2 or soap1.1. + */ + virtual void ApplyBindingL(TSOAPVersion aSoapVersion); + + /** + * 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); + + // 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); + virtual TInt SetOmittedL(const TDesC8& aName, TBool aValue); + virtual TInt RemovePropertyL(const TDesC8& aName); + + /** + * Destructor. + */ + virtual ~CSenHttpTransportProperties(); + + protected: // base class functions + + virtual void BaseConstructL(const TDesC8& aLocalname, + const TDesC8& aXml, + CSenXmlReader* aParser = NULL); + + virtual void BaseConstructL(const TDesC8& aNamespace, + const TDesC8& aLocalname, + const TDesC8& aXml, + CSenXmlReader* aParser = NULL); + + virtual void BaseConstructL(const TDesC8& aNamespace, + const TDesC8& aLocalname, + const TDesC8& aQualifiedName, + const TDesC8& aXml, + CSenXmlReader* aParser = NULL); + + virtual void BaseConstructL(const CSenElement& aElement); + + 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); + protected: + /** + * Constructor. + */ + CSenHttpTransportProperties(); + private: + HBufC8* AdaptDblQutesLC(const TDesC8& aValue); + }; + +#endif // SEN_HTTP_TRANSPORT_PROPERTIES_H