--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/profilesservices/ProfileEngine/WrapperSrc/CProEngProfileNameImpl.cpp Thu Dec 17 08:52:52 2009 +0200
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2002-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: Implementation of CProEngProfileNameImpl.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include "CProEngProfileNameImpl.h"
+#include <MProfileName.h>
+#include <MProEngProfileNameArray.h>
+#include "MProfileSetName.h"
+#include "CProEngEngineImpl.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CProEngProfileNameImpl::CProEngProfileNameImpl
+// -----------------------------------------------------------------------------
+//
+CProEngProfileNameImpl::CProEngProfileNameImpl(
+ const MProfileName& aProfileName,
+ MProfileSetName& aProfileSetName,
+ CProEngEngineImpl& aEngine,
+ TBool aModifiable )
+ : iProfileName( aProfileName ), iProfileSetName( aProfileSetName ),
+ iEngine( aEngine), iModifiable( aModifiable )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CProEngProfileNameImpl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CProEngProfileNameImpl* CProEngProfileNameImpl::NewL(
+ const MProfileName& aProfileName,
+ MProfileSetName& aProfileSetName,
+ CProEngEngineImpl& aEngine,
+ TBool aModifiable )
+ {
+ return new ( ELeave ) CProEngProfileNameImpl(
+ aProfileName, aProfileSetName, aEngine, aModifiable );
+ }
+
+// Destructor
+CProEngProfileNameImpl::~CProEngProfileNameImpl()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CProEngProfileNameImpl::Id
+// -----------------------------------------------------------------------------
+//
+TInt CProEngProfileNameImpl::Id() const
+ {
+ return iProfileName.Id();
+ }
+
+// -----------------------------------------------------------------------------
+// CProEngProfileNameImpl::Name
+// -----------------------------------------------------------------------------
+//
+const TDesC& CProEngProfileNameImpl::Name() const
+ {
+ return iProfileName.Name();
+ }
+
+// -----------------------------------------------------------------------------
+// CProEngProfileNameImpl::SetNameL
+// -----------------------------------------------------------------------------
+//
+TInt CProEngProfileNameImpl::SetNameL( const TDesC& aName )
+ {
+ if( !iModifiable )
+ {
+ return KErrAccessDenied;
+ }
+
+ if( AlreadyExistsL( aName ) )
+ {
+ return KErrAlreadyExists;
+ }
+
+ iProfileSetName.SetNameL( aName );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CProEngProfileNameImpl::AlreadyExistsL
+// -----------------------------------------------------------------------------
+//
+TBool CProEngProfileNameImpl::AlreadyExistsL( const TDesC& aName )
+ {
+ MProEngProfileNameArray* existingNames( iEngine.ProfileNameArrayLC() );
+ TInt result( existingNames->FindByName( aName ) );
+ TInt resId( existingNames->ProfileId( result ) );
+ CleanupStack::PopAndDestroy(); // existingNames
+
+ return ( ( result != KErrNotFound ) && ( resId != Id() ) );
+ }
+
+// End of File
+