diff -r 000000000000 -r c8caa15ef882 XDMEngine/XdmSettingsApi/src/XdmSettingsCollection.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/XDMEngine/XdmSettingsApi/src/XdmSettingsCollection.cpp Tue Feb 02 01:05:17 2010 +0200 @@ -0,0 +1,128 @@ +/* +* Copyright (c) 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: XDM Engine settings collection +* +*/ + + + +#include "XdmSettingsApi.h" +#include "XdmSettingsProperty.h" +#include "XdmSettingsCollection.h" + +// --------------------------------------------------------- +// CXdmSettingsCollection::SetPropCollectionL +// +// --------------------------------------------------------- +// +EXPORT_C CXdmSettingsCollection::CXdmSettingsCollection() + { + } + +// --------------------------------------------------------- +// CXdmSettingsCollection::~CXdmSettingsCollection +// +// --------------------------------------------------------- +// +EXPORT_C CXdmSettingsCollection::~CXdmSettingsCollection() + { + iPropCollection.ResetAndDestroy(); + } + +// --------------------------------------------------------- +// CXdmSettingsCollection::Property +// +// --------------------------------------------------------- +// +EXPORT_C TPtrC CXdmSettingsCollection::Property( TXdmSettingsProperty aProperty ) const + { + CXdmSettingsProperty* property = Find( aProperty ); + return property ? property->PropertyValue(): TPtrC(); + } + +// --------------------------------------------------------- +// CXdmSettingsCollection::Property +// +// --------------------------------------------------------- +// +EXPORT_C const CXdmSettingsProperty& CXdmSettingsCollection::Property( TInt aIndex ) const + { + __ASSERT_ALWAYS( aIndex >= 0 && aIndex < iPropCollection.Count(), + User::Panic( _L( "CXdmSettingsCollection" ), 0 ) ); + return *iPropCollection[aIndex]; + } + +// --------------------------------------------------------- +// CXdmSettingsCollection::Count +// +// --------------------------------------------------------- +// +EXPORT_C TInt CXdmSettingsCollection::Count() const + { + return iPropCollection.Count(); + } + +// --------------------------------------------------------- +// CXdmSettingsCollection::AppendL +// +// --------------------------------------------------------- +// +EXPORT_C void CXdmSettingsCollection::AppendL( const TDesC& aPropertyValue, + TXdmSettingsProperty aPropertyName ) + { + CXdmSettingsProperty* prop = CXdmSettingsProperty::NewL( aPropertyValue, aPropertyName ); + CleanupStack::PushL( prop ); + User::LeaveIfError( iPropCollection.Append( prop ) ); + CleanupStack::Pop(); //property + } + +// --------------------------------------------------------- +// CXdmSettingsCollection::RemoveL +// +// --------------------------------------------------------- +// +EXPORT_C void CXdmSettingsCollection::RemoveL( TXdmSettingsProperty aPropertyName ) + { + CXdmSettingsProperty* property = Find( aPropertyName ); + if( property ) + { + TInt index = iPropCollection.Find( property ); + iPropCollection.Remove( index ); + delete property; + property = NULL; + } + } + +// --------------------------------------------------------- +// CXdmSettingsCollection::Find +// +// --------------------------------------------------------- +// +CXdmSettingsProperty* CXdmSettingsCollection::Find( TXdmSettingsProperty aProperty ) const + { + TBool found = EFalse; + CXdmSettingsProperty* property = NULL; + const TInt count = iPropCollection.Count(); + for( TInt i = 0;!found && i < count;i++ ) + { + if( iPropCollection[i]->PropertyName() == aProperty ) + { + found = ETrue; + property = iPropCollection[i]; + } + } + return property; + } + +// End of File