ncdengine/engine/accesspointmanager/src/catalogsaccesspointsettings.cpp
changeset 0 ba25891c3a9e
child 25 7333d7932ef7
--- /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());
+        }
+    }