diff -r 000000000000 -r ba25891c3a9e ncdengine/engine/accesspointmanager/src/catalogsaccesspointsettings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/engine/accesspointmanager/src/catalogsaccesspointsettings.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,330 @@ +/* +* 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: Class CCatalogsAccessPointSettings implementation +* +*/ + + +#include "catalogsaccesspointsettings.h" +#include "catalogsutils.h" + + +CCatalogsAccessPointSettings* CCatalogsAccessPointSettings::NewL() + { + CCatalogsAccessPointSettings* self = NewLC(); + CleanupStack::Pop(); + return self; + } + +CCatalogsAccessPointSettings* CCatalogsAccessPointSettings::NewLC() + { + CCatalogsAccessPointSettings* self = + new (ELeave) CCatalogsAccessPointSettings; + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +CCatalogsAccessPointSettings::CCatalogsAccessPointSettings() + { + } + +void CCatalogsAccessPointSettings::ConstructL() + { + iLongTextData = new (ELeave) CDesC16ArrayFlat(2); + iText16Data = new (ELeave) CDesC16ArrayFlat(2); + iText8Data = new (ELeave) CDesC8ArrayFlat(2); + } + +CCatalogsAccessPointSettings::~CCatalogsAccessPointSettings() + { + delete iLongTextData; + delete iText16Data; + delete iText8Data; + iLongTextMembers.Close(); + iText16Members.Close(); + iText8Members.Close(); + iUintMembers.Close(); + iBoolMembers.Close(); + iUintData.Close(); + iBoolData.Close(); + } + +void CCatalogsAccessPointSettings::SetLongTextParameterL( + const TApMember& aKey, const TDesC& aValue) + { + TInt index = iLongTextMembers.Find(aKey); + + if (index == KErrNotFound) + { + // new parameter + iLongTextMembers.AppendL(aKey); + iLongTextData->AppendL(aValue); + } + else + { + // parameter exists already, change the value + iLongTextData->Delete(index); + iLongTextData->InsertL(index, aValue); + } + } + +void CCatalogsAccessPointSettings::SetText16ParameterL( + const TApMember& aKey, const TDesC16& aValue) + { + TInt index = iText16Members.Find(aKey); + + if (index == KErrNotFound) + { + // new parameter + iText16Members.AppendL(aKey); + iText16Data->AppendL(aValue); + } + else + { + // parameter exists already, change the value + iText16Data->Delete(index); + iText16Data->InsertL(index, aValue); + } + } + +void CCatalogsAccessPointSettings::SetText8ParameterL( + const TApMember& aKey, const TDesC8& aValue) + { + TInt index = iText8Members.Find(aKey); + + if (index == KErrNotFound) + { + // new parameter + iText8Members.AppendL(aKey); + iText8Data->AppendL(aValue); + } + else + { + // parameter exists already, change the value + iText8Data->Delete(index); + iText8Data->InsertL(index, aValue); + } + } + +void CCatalogsAccessPointSettings::SetUintParameterL( + const TApMember& aKey, const TUint32& aValue) + { + TInt index = iUintMembers.Find(aKey); + if (index == KErrNotFound) + { + // new parameter + iUintMembers.AppendL(aKey); + iUintData.AppendL(aValue); + } + else + { + // replace existing data + iUintData.Remove(index); + iUintData.InsertL(aValue, index); + } + } + + +void CCatalogsAccessPointSettings::SetBoolParameterL( + const TApMember& aKey, const TBool& aValue) + { + TInt index = iBoolMembers.Find(aKey); + if (index == KErrNotFound) + { + // new parameter + iBoolMembers.AppendL(aKey); + iBoolData.AppendL(aValue); + } + else + { + // replace existing value + iBoolData.Remove(index); + iBoolData.InsertL(aValue, index); + } + } + +TInt CCatalogsAccessPointSettings::LongTextParameterCount() const + { + return iLongTextMembers.Count(); + } + +TInt CCatalogsAccessPointSettings::Text16ParameterCount() const + { + return iText16Members.Count(); + } + +TInt CCatalogsAccessPointSettings::Text8ParameterCount() const + { + return iText8Members.Count(); + } + +TInt CCatalogsAccessPointSettings::UintParameterCount() const + { + return iUintMembers.Count(); + } + +TInt CCatalogsAccessPointSettings::BoolParameterCount() const + { + return iBoolMembers.Count(); + } + +void CCatalogsAccessPointSettings::LongTextParameter( + TInt aIndex, TApMember& aKey, TPtrC& aValue) const + { + aKey = iLongTextMembers[aIndex]; + aValue.Set((*iLongTextData)[aIndex]); + } + +void CCatalogsAccessPointSettings::Text16Parameter( + TInt aIndex, TApMember& aKey, TPtrC16& aValue) const + { + aKey = iText16Members[aIndex]; + aValue.Set((*iText16Data)[aIndex]); + } + +void CCatalogsAccessPointSettings::Text8Parameter( + TInt aIndex, TApMember& aKey, TPtrC8& aValue) const + { + aKey = iText8Members[aIndex]; + aValue.Set((*iText8Data)[aIndex]); + } + +void CCatalogsAccessPointSettings::UintParameter( + TInt aIndex, TApMember& aKey, TUint32& aValue) const + { + aKey = iUintMembers[aIndex]; + aValue = iUintData[aIndex]; + } + +void CCatalogsAccessPointSettings::BoolParameter( + TInt aIndex, TApMember& aKey, TBool& aValue) const + { + aKey = iBoolMembers[aIndex]; + aValue = iBoolData[aIndex]; + } + +void CCatalogsAccessPointSettings::ExternalizeL(RWriteStream& aStream) + { + DLTRACEIN(("")); + + // write long text parameters + TInt longTextCount = LongTextParameterCount(); + aStream.WriteInt32L(longTextCount); + for (TInt i = 0; i < longTextCount; i++) + { + aStream.WriteInt32L(iLongTextMembers[i]); + ExternalizeDesL((*iLongTextData)[i], aStream); + } + + // write 16-bit text parameters + TInt text16Count = Text16ParameterCount(); + aStream.WriteInt32L(text16Count); + for (TInt i = 0; i < text16Count; i++) + { + aStream.WriteInt32L(iText16Members[i]); + ExternalizeDesL((*iText16Data)[i], aStream); + } + + // write 8-bit text parameters + TInt text8Count = Text8ParameterCount(); + aStream.WriteInt32L(text8Count); + for (TInt i = 0; i < text8Count; i++) + { + aStream.WriteInt32L(iText8Members[i]); + ExternalizeDesL((*iText8Data)[i], aStream); + } + + // write uint parameters + TInt uintCount = UintParameterCount(); + aStream.WriteInt32L(uintCount); + for (TInt i = 0; i < uintCount; i++) + { + aStream.WriteInt32L(iUintMembers[i]); + aStream.WriteUint32L(iUintData[i]); + } + + // write bool parameter + TInt boolCount = BoolParameterCount(); + aStream.WriteInt32L(boolCount); + for (TInt i = 0; i < boolCount; i++) + { + aStream.WriteInt32L(iBoolMembers[i]); + aStream.WriteInt8L(iBoolData[i]); + } + + DLTRACEOUT(("")); + } + +void CCatalogsAccessPointSettings::InternalizeL(RReadStream& aStream) + { + // read long text parameters + TInt longTextCount = aStream.ReadInt32L(); + iLongTextMembers.ReserveL(longTextCount); + for (TInt i = 0; i < longTextCount; i++) + { + iLongTextMembers.AppendL((TApMember)aStream.ReadInt32L()); + HBufC* buf = NULL; + InternalizeDesL(buf, aStream); + CleanupStack::PushL(buf); + iLongTextData->AppendL(*buf); + CleanupStack::PopAndDestroy(buf); + } + + // read 16-bit text parameters + TInt text16Count = aStream.ReadInt32L(); + iText16Members.ReserveL(text16Count); + for (TInt i = 0; i < text16Count; i++) + { + iText16Members.AppendL((TApMember)aStream.ReadInt32L()); + HBufC16* buf = NULL; + InternalizeDesL(buf, aStream); + CleanupStack::PushL( buf ); + iText16Data->AppendL(*buf); + CleanupStack::PopAndDestroy( buf ); + } + + // read 8-bit text parameters + TInt text8Count = aStream.ReadInt32L(); + iText8Members.ReserveL(text8Count); + for (TInt i = 0; i < text8Count; i++) + { + iText8Members.AppendL((TApMember)aStream.ReadInt32L()); + HBufC8* buf = NULL; + InternalizeDesL(buf, aStream); + CleanupStack::PushL( buf ); + iText8Data->AppendL(*buf); + CleanupStack::PopAndDestroy( buf ); + } + + // read uint parameters + TInt uintCount = aStream.ReadInt32L(); + iUintMembers.ReserveL(uintCount); + iUintData.ReserveL(uintCount); + for (TInt i = 0; i < uintCount; i++) + { + iUintMembers.AppendL((TApMember)aStream.ReadInt32L()); + iUintData.AppendL(aStream.ReadUint32L()); + } + + // read bool parameters + TInt boolCount = aStream.ReadInt32L(); + iBoolMembers.ReserveL(boolCount); + iBoolData.ReserveL(boolCount); + for (TInt i = 0; i < boolCount; i++) + { + iBoolMembers.AppendL((TApMember)aStream.ReadInt32L()); + iBoolData.AppendL(aStream.ReadInt8L()); + } + }