--- 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 <SenTransportProperties.h>
+
+// 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