diff -r 000000000000 -r 62f9d29f7211 webservices/wsutils/src/senattribute.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsutils/src/senattribute.cpp Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,203 @@ +/* +* Copyright (c) 2004 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 "senattribute.h" + +#include "senlogger.h" + + +//#ifdef _SENDEBUG +// // CONSTATS for file logging +//namespace +// { +// _LIT(KLogFileDir, "SenUtils"); +// _LIT(KLogFileName, "SenAttribute.log"); +// } +//#endif // _SENDEBUG + +EXPORT_C CSenAttribute* CSenAttribute::NewL(const TDesC8& aName, + const TDesC8& aType, + const TDesC8& aValue, + const TDesC8& aFriendlyName) + { + CSenAttribute* pNew = new (ELeave) CSenAttribute; + CleanupStack::PushL(pNew); + pNew->ConstructL(aName, aType, aValue, aFriendlyName); + CleanupStack::Pop(); // pNew; + return pNew; + } + +EXPORT_C CSenAttribute* CSenAttribute::NewL(const TDesC8& aName, + const TDesC8& aType, + const TDesC8& aValue) + { + CSenAttribute* pNew = new (ELeave) CSenAttribute; + CleanupStack::PushL(pNew); + pNew->ConstructL(aName, aType, aValue, KNullDesC8()); + CleanupStack::Pop(); // pNew; + return pNew; + } + +EXPORT_C CSenAttribute::~CSenAttribute() + { + delete ipName; + delete ipType; + delete ipFriendlyName; + iValues.ResetAndDestroy(); + +// // Close the log file and the connection to the server. +// LOG_WRITE((_L("Log file closed."))); +// LOG_CLOSELOG; +// LOG_CLOSE; + } + +EXPORT_C CSenAttribute::CSenAttribute() + { + } + + +EXPORT_C void CSenAttribute::ConstructL(const TDesC8& aName, + const TDesC8& aType, + const TDesC8& aValue, + const TDesC8& aFriendlyName) + { +// LOG_CONNECT; +// LOG_CREATELOG((KLogFileDir, KLogFileName, EFileLoggingModeOverwrite)); +// LOG_WRITE(( _L8("CSenAttribute::ConstructL(): Log opened") )); + TLSLOG_L(KSenUtilsLogChannel, KMinLogLevel, "CSenAttribute::ConstructL(): Start"); + ipName = aName.AllocL() ; + ipType = aType.AllocL() ; + iValues.Append(aValue.AllocL()); + // If the friendly nameparam isn't set, then don't set the owned value + ipFriendlyName = aFriendlyName.AllocL() ; + TLSLOG_L(KSenUtilsLogChannel, KMinLogLevel, "CSenAttribute::ConstructL(): End"); + } + + +EXPORT_C TPtrC8 CSenAttribute::Name() const + { + if ( ipName == NULL ) + { + return KNullDesC8(); + } else + { + return *ipName; + } + } + + +EXPORT_C TPtrC8 CSenAttribute::Value() const + { + if ( 0 == iValues.Count() ) + { + return KNullDesC8(); + } else + { + return *iValues[0]; + } + } + + +EXPORT_C TPtrC8 CSenAttribute::Type() const + { + if ( ipType == NULL ) + { + return KNullDesC8(); + } else + { + return *ipType; + } + } + + +EXPORT_C TPtrC8 CSenAttribute::FriendlyName() const + { + if ( ipFriendlyName == NULL ) + { + return KNullDesC8(); + } else + { + return *ipFriendlyName; + } + } + + +EXPORT_C void CSenAttribute::SetValueL(const TDesC8& aValue) //codescannerwarnings + { + iValues.ResetAndDestroy(); + iValues.Append(aValue.AllocL()); + } + + +EXPORT_C void CSenAttribute::AddValueL(const TDesC8& aValue) //codescannerwarnings + { + iValues.Append(aValue.AllocL()); + } + + +EXPORT_C const RAttrValueArray CSenAttribute::GetValues() const + { + return iValues; + } + + +EXPORT_C TInt CSenAttribute::NumValues() const + { + return iValues.Count(); + } + + +EXPORT_C TBool CSenAttribute::Equals(const CSenAttribute& aAttr) const + { + if ( 0 != aAttr.Name().Compare(*ipName) ) return EFalse; + if ( 0 != aAttr.Type().Compare(*ipType) ) return EFalse; + if ( 0 != aAttr.FriendlyName().Compare(*ipFriendlyName) ) return EFalse; + + TInt count = iValues.Count(); + if ( count != aAttr.NumValues() ) return EFalse; + + RAttrValueArray thatValues = aAttr.GetValues(); + TBool ret = ETrue; + for ( TInt i = 0; i < count; i++ ) + { + if ( EFalse == ret ) break; + ret = EFalse; + for ( TInt ii = 0; ii < count; ii++ ) + { + if ( 0 == iValues[i]->Compare(*thatValues[ii]) ) + { + ret = ETrue; + break; + } + } + } + return ret; + } + + +//RFileLogger* CSenAttribute::Log() const +// { +// return(RFileLogger*) &iLog; +// } + +