diff -r 000000000000 -r 62f9d29f7211 webservices/wsxml/src/sennamespace.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsxml/src/sennamespace.cpp Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,179 @@ +/* +* Copyright (c) 2002-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: +* +*/ + + + + + + + + +// INCLUDE FILES +#include "SenNameSpace.h" +#include "SenXmlConstants.h" + +EXPORT_C CSenNamespace* CSenNamespace::NewL(const TDesC8& aUri) + { + // Note: intentionally calling the other version of NewLC to leave out + // one call in call stack + CSenNamespace* pNew = CSenNamespace::NewLC(KNullDesC8, aUri); + CleanupStack::Pop(); + return pNew; + } + +EXPORT_C CSenNamespace* CSenNamespace::NewLC(const TDesC8& aUri) + { + CSenNamespace* pNew = CSenNamespace::NewLC(KNullDesC8, aUri); + return pNew; + } + +EXPORT_C CSenNamespace* CSenNamespace::NewL(const TDesC8& aPrefix, const TDesC8& aUri) + { + CSenNamespace* pNew = CSenNamespace::NewLC(aPrefix, aUri); + CleanupStack::Pop(); + return pNew; + } + +EXPORT_C CSenNamespace* CSenNamespace::NewLC(const TDesC8& aPrefix, const TDesC8& aUri) + { + CSenNamespace* pNew = new (ELeave) CSenNamespace(); + CleanupStack::PushL(pNew); + + pNew->ConstructL(aPrefix, aUri); + return pNew; + } + + +CSenNamespace::CSenNamespace() +: ipPrefix(NULL), + ipUri(NULL) + { + + } + +void CSenNamespace::ConstructL(const TDesC8& aPrefix, const TDesC8& aUri) + { + if (aPrefix.Length() > -1) + { + ipPrefix = aPrefix.AllocL(); + } + + if (aUri.Length() > 0) + { + ipUri = aUri.AllocL(); + } + } + +EXPORT_C CSenNamespace::~CSenNamespace() + { + delete ipPrefix; + delete ipUri; + } + +EXPORT_C TBool CSenNamespace::Compare(const TDesC8& aOtherPrefix, + const TDesC8& aOtherUri) const + { + TBool retVal(EFalse); + if (aOtherUri == URI()) + { + if (aOtherPrefix == KNullDesC8 || aOtherPrefix == Prefix()) + { + retVal = ETrue; + } + } + return retVal; + } + +EXPORT_C TBool CSenNamespace::Compare( + const CSenNamespace& aOtherNamespace) const + { + return this->Compare(aOtherNamespace.Prefix(), aOtherNamespace.URI()); + } + +EXPORT_C TBool CSenNamespace::MatchesL( + const CSenNamespace& aOtherNamespace) const + { + return (*ipUri == aOtherNamespace.URI()); + } + +EXPORT_C const TDesC8& CSenNamespace::URI() const + { + if(ipUri) + { + return *ipUri; + } + else + { + return KNullDesC8; + } + } + +EXPORT_C void CSenNamespace::SetUriL(const TDesC8& aUri) + { + HBufC8* pUri = NULL; + if(aUri!=KNullDesC8) + { + pUri = aUri.AllocL(); + } + delete ipUri; + ipUri = pUri; + } + +EXPORT_C const TDesC8& CSenNamespace::Prefix() const + { + if(ipPrefix) + { + return *ipPrefix; + } + else + { + return KNullDesC8; + } + } + +EXPORT_C void CSenNamespace::SetPrefixL(const TDesC8& aPrefix) + { + HBufC8* pPrefix = NULL; + if(aPrefix!=KNullDesC8) + { + pPrefix = aPrefix.AllocL(); + } + delete ipPrefix; + ipPrefix = pPrefix; + } + + + +EXPORT_C void CSenNamespace::InsertL(RBufWriteStream& aWs) + { + if(!ipUri) + { + //SENDEBUG((_L("CSenNamespace::InsertL illegal ns, it has no URI!"))); + return; + } + + aWs.WriteL(KSenSpaceXmlns); + if(ipPrefix && ipPrefix->Length()>0) + { + aWs.WriteL(KSenColon); + aWs.WriteL(*ipPrefix); + } + aWs.WriteL(KSenEquals); + aWs.WriteL(*ipUri); + } + +// End of File