--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsframework/src/senlayeredhttptransportproperties.cpp Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,517 @@
+/*
+* Copyright (c) 2006 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:
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+#include <s32strm.h> // RWriteStream
+#include <SenXmlReader.h>
+#include "senlayeredhttptransportproperties.h"
+#include <SenHttpTransportProperties.h> // property keys (constants)
+#include <SenTransportProperties.h> // property keys (constants)
+#include "senpropertieselement.h" // private: Utils\inc
+#include "senpropertiesfragment.h" // private: Utils\inc
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewL()
+ {
+ CSenLayeredHttpTransportProperties* pNew = NewLC();
+ CleanupStack::Pop(); // pNew
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewLC()
+ {
+ CSenLayeredHttpTransportProperties* pNew = new (ELeave) CSenLayeredHttpTransportProperties;
+ CleanupStack::PushL(pNew);
+
+ // omit parsing by passing zero-length descriptor
+ pNew->BaseConstructL(KSenLayeredXmlPropertiesLocalname, KNullDesC8, NULL);
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewL(const TDesC8& aXmlUtf8, CSenXmlReader& aParser)
+ {
+ CSenLayeredHttpTransportProperties* pNew = NewLC(aXmlUtf8, aParser);
+ CleanupStack::Pop(); // pNew
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewLC(const TDesC8& aXmlUtf8, CSenXmlReader& aParser)
+ {
+ CSenLayeredHttpTransportProperties* pNew = new (ELeave) CSenLayeredHttpTransportProperties;
+ CleanupStack::PushL(pNew);
+
+ // parse the XML document descriptor into DOM fragment
+ pNew->BaseConstructL(KSenLayeredXmlPropertiesLocalname, aXmlUtf8, &aParser);
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewL(const CSenElement& aElement)
+ {
+ CSenLayeredHttpTransportProperties* pNew = NewLC(aElement);
+ CleanupStack::Pop(); // pNew
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewLC(const CSenElement& aElement)
+ {
+ CSenLayeredHttpTransportProperties* pNew = new (ELeave) CSenLayeredHttpTransportProperties;
+ CleanupStack::PushL(pNew);
+
+ // parse the XML document descriptor into DOM fragment
+ pNew->BaseConstructL(aElement);
+ return pNew;
+ }
+
+// RStringPool variants:
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewL(RStringPool& aStringPool)
+ {
+ CSenLayeredHttpTransportProperties* pNew = NewLC(aStringPool);
+ CleanupStack::Pop(); // pNew
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewLC(RStringPool& aStringPool)
+ {
+ CSenLayeredHttpTransportProperties* pNew = new (ELeave) CSenLayeredHttpTransportProperties;
+ CleanupStack::PushL(pNew);
+
+ // omit parsing by passing zero-length descriptor
+ pNew->BaseConstructL(KSenLayeredXmlPropertiesLocalname, KNullDesC8, NULL, &aStringPool);
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewL(const TDesC8& aXmlUtf8, CSenXmlReader& aParser, RStringPool& aStringPool)
+ {
+ CSenLayeredHttpTransportProperties* pNew = NewLC(aXmlUtf8, aParser, aStringPool);
+ CleanupStack::Pop(); // pNew
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewLC(const TDesC8& aXmlUtf8, CSenXmlReader& aParser, RStringPool& aStringPool)
+ {
+ CSenLayeredHttpTransportProperties* pNew = new (ELeave) CSenLayeredHttpTransportProperties;
+ CleanupStack::PushL(pNew);
+
+ // parse the XML document descriptor into DOM fragment
+ pNew->BaseConstructL(KSenLayeredXmlPropertiesLocalname, aXmlUtf8, &aParser, &aStringPool);
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewL(const CSenElement& aElement, RStringPool& aStringPool)
+ {
+ CSenLayeredHttpTransportProperties* pNew = NewLC(aElement, aStringPool);
+ CleanupStack::Pop(); // pNew
+ return pNew;
+ }
+
+EXPORT_C CSenLayeredHttpTransportProperties* CSenLayeredHttpTransportProperties::NewLC(const CSenElement& aElement, RStringPool& aStringPool)
+ {
+ CSenLayeredHttpTransportProperties* pNew = new (ELeave) CSenLayeredHttpTransportProperties;
+ CleanupStack::PushL(pNew);
+
+ // parse the XML document descriptor into DOM fragment
+ pNew->BaseConstructL(aElement, &aStringPool);
+ return pNew;
+ }
+
+
+void CSenLayeredHttpTransportProperties::SetReader(CSenXmlReader& aReader)
+ {
+ CSenLayeredTransportProperties::SetReader(aReader);
+ }
+
+
+MSenProperties::TSenPropertiesClassType CSenLayeredHttpTransportProperties::PropertiesClassType()
+ {
+ return ESenLayeredHttpTransportProperties;
+ }
+
+void CSenLayeredHttpTransportProperties::WriteToL(RWriteStream& aWriteStream)
+ {
+ CSenLayeredTransportProperties::WriteToL(aWriteStream);
+ }
+
+void CSenLayeredHttpTransportProperties::ReadFromL(const TDesC8& aBuffer)
+ {
+ CSenLayeredTransportProperties::ReadFromL(aBuffer);
+ }
+
+HBufC8* CSenLayeredHttpTransportProperties::AsUtf8L()
+ {
+ return CSenLayeredTransportProperties::AsUtf8L();
+ }
+
+HBufC8* CSenLayeredHttpTransportProperties::AsUtf8LC()
+ {
+ return CSenLayeredTransportProperties::AsUtf8LC();
+ }
+
+TBool CSenLayeredHttpTransportProperties::IsSafeToCast(TSenPropertiesClassType aClass)
+ {
+ if ( aClass == MSenProperties::ESenLayeredHttpTransportProperties )
+ {
+ return ETrue;
+ }
+ else
+ {
+ return CSenLayeredTransportProperties::IsSafeToCast( aClass );
+ }
+ }
+
+TInt CSenLayeredHttpTransportProperties::SetPropertyL(const TDesC8& aName, const TDesC8& aValue)
+ {
+ return CSenLayeredTransportProperties::SetPropertyL(aName, aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::PropertyL(const TDesC8& aName, TPtrC8& aValue)
+ {
+ return CSenLayeredTransportProperties::PropertyL(aName, aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::PropertyL(const TDesC8& aName, MSenProperty*& aValue, TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::PropertyL(aName, aValue, aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::PropertyL(const TDesC8& aName, MSenProperty*& aValue)
+ {
+ return CSenLayeredTransportProperties::PropertyL(aName, aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::PropertiesByTypeL(const TDesC8& aType, RPointerArray<MSenProperty>& aArray)
+ {
+ return CSenLayeredTransportProperties::PropertiesByTypeL(aType, aArray);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SetIntPropertyL(const TDesC8& aName, const TInt aValue)
+ {
+ return CSenLayeredTransportProperties::SetIntPropertyL(aName, aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::IntPropertyL(const TDesC8& aName, TInt& aValue)
+ {
+ return CSenLayeredTransportProperties::IntPropertyL(aName, aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SetBoolPropertyL(const TDesC8& aName, const TBool aValue)
+ {
+ return CSenLayeredTransportProperties::SetBoolPropertyL(aName, aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::BoolPropertyL(const TDesC8& aName, TBool& aValue)
+ {
+ return CSenLayeredTransportProperties::BoolPropertyL(aName, aValue);
+ }
+
+void CSenLayeredHttpTransportProperties::WriteToL(RWriteStream& aWriteStream, TSenPropertiesLayer aLayer)
+ {
+ CSenLayeredTransportProperties::WriteToL(aWriteStream, aLayer);
+ }
+
+void CSenLayeredHttpTransportProperties::ReadFromL(const TDesC8& aBuffer, TSenPropertiesLayer aLayer)
+ {
+ CSenLayeredTransportProperties::ReadFromL(aBuffer, aLayer);
+ }
+
+HBufC8* CSenLayeredHttpTransportProperties::AsUtf8L(TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::AsUtf8L(aLayer);
+ }
+
+HBufC8* CSenLayeredHttpTransportProperties::AsUtf8LC(TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::AsUtf8LC(aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::ShrinkTo(TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::ShrinkTo(aLayer);
+ }
+
+void CSenLayeredHttpTransportProperties::ExpandToL(TSenPropertiesLayer aLayer)
+ {
+ CSenLayeredTransportProperties::ExpandToL(aLayer);
+ }
+
+MSenLayeredProperties::TSenPropertiesLayer CSenLayeredHttpTransportProperties::TopLayer()
+ {
+ return CSenLayeredTransportProperties::TopLayer();
+ }
+
+TInt CSenLayeredHttpTransportProperties::SetPropertyL(const TDesC8& aName, const TDesC8& aValue, TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::SetPropertyL(aName, aValue, aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::PropertyL(const TDesC8& aName,
+ TPtrC8& aValue,
+ TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::PropertyL(aName, aValue, aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SetIntPropertyL(const TDesC8& aName,
+ const TInt aValue,
+ TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::SetIntPropertyL(aName, aValue, aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::IntPropertyL(const TDesC8& aName,
+ TInt& aValue,
+ TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::IntPropertyL(aName, aValue, aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SetBoolPropertyL(const TDesC8& aName,
+ const TBool aValue,
+ TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::SetBoolPropertyL(aName, aValue, aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::BoolPropertyL(const TDesC8& aName,
+ TBool& aValue,
+ TSenPropertiesLayer aLayer)
+ {
+ return CSenLayeredTransportProperties::BoolPropertyL(aName, aValue, aLayer);
+ }
+
+TInt CSenLayeredHttpTransportProperties::IapIdL(TUint32& aCurrentIapId)
+ {
+ return CSenLayeredTransportProperties::IapIdL(aCurrentIapId);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SnapIdL(TUint32& aCurrentSnapId)
+ {
+ return CSenLayeredTransportProperties::SnapIdL(aCurrentSnapId);
+ }
+
+TInt CSenLayeredHttpTransportProperties::ProxyPortL(TInt& aProxyPort)
+ {
+ return CSenLayeredTransportProperties::ProxyPortL(aProxyPort);
+ }
+
+TInt CSenLayeredHttpTransportProperties::ProxyHostL(TPtrC8& aProxyHost)
+ {
+ return CSenLayeredTransportProperties::ProxyHostL(aProxyHost);
+ }
+
+TInt CSenLayeredHttpTransportProperties::ProxyUsageL(TBool& aValue)
+ {
+ return CSenLayeredTransportProperties::ProxyUsageL(aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::IAPDialogL(TBool& aValue)
+ {
+ return CSenLayeredTransportProperties::IAPDialogL(aValue);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SnapDialogL(TBool& aValue)
+ {
+ return CSenLayeredTransportProperties::SnapDialogL(aValue);
+ }
+TInt CSenLayeredHttpTransportProperties::ContentTypeL(TPtrC8& aContentType)
+ {
+ return PropertyL(KContentTypeLocalName, aContentType);
+ }
+
+TInt CSenLayeredHttpTransportProperties::UserAgentL(TPtrC8& aUserAgent)
+ {
+ return CSenLayeredTransportProperties::UserAgentL(aUserAgent);
+ }
+
+TInt CSenLayeredHttpTransportProperties::AcceptL(MSenProperty*& aAccept)
+ {
+ return CSenLayeredXmlProperties::PropertyL(KAcceptLocalName, aAccept);
+ }
+
+TInt CSenLayeredHttpTransportProperties::HttpMethodL(TSenHttpMethod& aMethod)
+ {
+ TPtrC8 method;
+ TInt retVal = PropertyL(KHttpMethodLocalName, method);
+ if (retVal == KErrNone)
+ {
+ if (method == KHttpGet)
+ {
+ aMethod = ESenHttpGet;
+ return KErrNone;
+ }
+ else if (method == KHttpPost)
+ {
+ aMethod = ESenHttpPost;
+ return KErrNone;
+ }
+ else if (method == KHttpPut)
+ {
+ aMethod = ESenHttpPut;
+ return KErrNone;
+ }
+ else if (method == KHttpDelete)
+ {
+ aMethod = ESenHttpDelete;
+ return KErrNone;
+ }
+ else
+ {
+ return KErrUnknown;
+ }
+ }
+ else
+ {
+ return retVal;
+ }
+ }
+
+TInt CSenLayeredHttpTransportProperties::HttpVersionL(TSenHttpVersion& aHttpVersion)
+ {
+ TPtrC8 method;
+ TInt retVal = PropertyL(KHttpVersionLocalName, method);
+ if (retVal == KErrNone)
+ {
+ if (method == KHttp10)
+ {
+ aHttpVersion = ESenHttp10;
+ return KErrNone;
+ }
+ else if (method == KHttp11)
+ {
+ aHttpVersion = ESenHttp11;
+ return KErrNone;
+ }
+ else
+ {
+ return KErrUnknown;
+ }
+ }
+ else
+ {
+ return retVal;
+ }
+ }
+
+TInt CSenLayeredHttpTransportProperties::HttpHeadersL(
+ RPointerArray<MSenProperty>& aArray)
+ {
+ return PropertiesByTypeL(KHttpHeaderType, aArray);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SetPropertyL(const TDesC8& aName,
+ const TDesC8& aValue,
+ const TDesC8& aType)
+ {
+ return CSenLayeredTransportProperties::SetPropertyL(aName, aValue, aType);
+ }
+
+TInt CSenLayeredHttpTransportProperties::PropertyL(const TDesC8& aName,
+ TPtrC8& aValue,
+ TPtrC8& aType)
+ {
+ return CSenLayeredTransportProperties::PropertyL(aName, aValue, aType);
+ }
+MSenProperties* CSenLayeredHttpTransportProperties::CloneL() const
+ {
+ CSenElement& element = ipFragment->AsElement();
+
+ CSenLayeredHttpTransportProperties* pProperties = NewLC(element);
+ if ( ipChildProperties )
+ {
+ CSenLayeredHttpTransportProperties* pChildProperties =
+ (CSenLayeredHttpTransportProperties*)ipChildProperties->CloneL();
+ pProperties->ipChildProperties = pChildProperties;
+ }
+
+ CleanupStack::Pop(pProperties);
+ return pProperties;
+ }
+
+void CSenLayeredHttpTransportProperties::BaseConstructL(const TDesC8& aLocalname,
+ const TDesC8& aXml,
+ CSenXmlReader* aParser,
+ RStringPool* aStringPool)
+ {
+ CSenLayeredTransportProperties::BaseConstructL(aLocalname, aXml, aParser, aStringPool);
+ }
+
+void CSenLayeredHttpTransportProperties::BaseConstructL(const TDesC8& aNamespace,
+ const TDesC8& aLocalname,
+ const TDesC8& aXml,
+ CSenXmlReader* aParser,
+ RStringPool* aStringPool)
+ {
+ CSenLayeredTransportProperties::BaseConstructL(aNamespace, aLocalname, aXml, aParser, aStringPool);
+ }
+
+void CSenLayeredHttpTransportProperties::BaseConstructL(const TDesC8& aNamespace,
+ const TDesC8& aLocalname,
+ const TDesC8& aQualifiedName,
+ const TDesC8& aXml,
+ CSenXmlReader* aParser,
+ RStringPool* aStringPool)
+ {
+ CSenLayeredTransportProperties::BaseConstructL(aNamespace, aLocalname, aQualifiedName,
+ aXml, aParser, aStringPool);
+ }
+
+void CSenLayeredHttpTransportProperties::BaseConstructL(const CSenElement& aElement, RStringPool* aStringPool)
+ {
+ CSenLayeredTransportProperties::BaseConstructL(aElement, aStringPool);
+ }
+
+CSenLayeredHttpTransportProperties::CSenLayeredHttpTransportProperties()
+ {
+ }
+
+CSenLayeredHttpTransportProperties::~CSenLayeredHttpTransportProperties()
+ {
+ }
+
+TInt CSenLayeredHttpTransportProperties::DeviceIDL(TPtrC8& aDeviceID)
+ {
+ return CSenLayeredTransportProperties::DeviceIDL(aDeviceID);
+ }
+
+TInt CSenLayeredHttpTransportProperties::SoapActionL(TPtrC8& aAction)
+ {
+ return CSenLayeredTransportProperties::SoapActionL(aAction);
+ }
+TInt CSenLayeredHttpTransportProperties::DownloadFolderL(TPtrC8& aDownloadFolder)
+ {
+ return CSenLayeredTransportProperties::DownloadFolderL(aDownloadFolder);
+ }
+
+TInt CSenLayeredHttpTransportProperties::FileAttachmentL(const TDesC8& aCid, HBufC8*& aFileName)
+ {
+ return CSenLayeredTransportProperties::FileAttachmentL(aCid, aFileName);
+ }
+
+TInt CSenLayeredHttpTransportProperties::MwsNamespaceL(TPtrC8& aMwsNamespace)
+ {
+ return CSenLayeredTransportProperties::MwsNamespaceL(aMwsNamespace);
+ }
+// END OF FILE
+
+