--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/authenticationservices/authenticationserver/source/server/authrepository.cpp Sat Dec 05 21:41:51 2009 +0000
@@ -0,0 +1,143 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+* authrepository - Central Repository methods implementation
+*
+*/
+
+
+/**
+ @file
+*/
+
+#include "authrepository.h"
+#include "authserver_impl.h"
+
+using namespace AuthServer;
+
+CAuthRepository* CAuthRepository::NewL()
+ {
+ CAuthRepository* self = CAuthRepository::NewLC();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+CAuthRepository* CAuthRepository::NewLC()
+ {
+ CAuthRepository* self = new (ELeave)CAuthRepository();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+void CAuthRepository::ConstructL()
+ {
+ iRepository = CRepository::NewL(KUidAuthServerRepository);
+ }
+
+
+CAuthRepository::~CAuthRepository()
+ {
+ delete iRepository;
+ }
+
+
+
+/**
+ Retrieves the default system wide plugin Id as defined in the
+ central repository file
+
+
+ @leave KErrArgument If the default plugin is not
+ defined in the central repository
+ file.
+
+ @return The retrieved Plugin Id from the repository is returned.
+
+ */
+
+TPluginId CAuthRepository::DefaultPluginL() const
+ {
+ //Read the default plugin value from the configuration file.
+ TInt defaultPlugin(0);
+ User::LeaveIfError(iRepository->Get(KAuthDefaultPlugin, defaultPlugin));
+
+ //If the default plugin is not set.
+ if(defaultPlugin == 0)
+ {
+ User::Leave(KErrArgument);
+ }
+
+ return defaultPlugin;
+
+ }
+
+
+/**
+ Retrieves the authentication alias as defined in the authserver's
+ central repository file .
+
+ @param aAuthAliasList An array to be populated with the
+ authentication alias as obtained
+ from the authserver's central repository
+ file.
+ @leave KErrArgument when the count of authentication aliases
+ in authserver's central repository file is
+ negative.
+ @leave KErrNotFound when there is no authentication aliases
+ defined in authserver's central repository file.
+ */
+
+ void CAuthRepository::ListAliasL(RPointerArray<HBufC>& aAuthAliasList)
+ {
+ TInt authStrengthAliasCount(0);
+
+ User::LeaveIfError(iRepository->Get(EAuthAliasesCount, authStrengthAliasCount));
+
+ // leave if the count is a negative value.
+ if(authStrengthAliasCount < 0)
+ User::Leave(KErrArgument);
+
+ // leave with KErrNotFound when the count is zero.
+ if(authStrengthAliasCount == 0)
+ User::Leave(KErrNotFound);
+
+ for(TInt i = 0; i < authStrengthAliasCount; ++i)
+ {
+ HBufC* strengthAlias = HBufC::NewLC(KMaxDescLen);
+ TPtr value(strengthAlias->Des());
+ User::LeaveIfError(iRepository->Get(EAuthAliases+i, value));
+ aAuthAliasList.AppendL(strengthAlias);
+ CleanupStack::Pop(strengthAlias);
+ }
+ }
+
+
+ /**
+ Retrieves the authentication definition corresponding to the alias
+ as defined in the authserver's central repository file .
+
+ @param aKey The index of the authentication alias
+ in the central repository file.
+ zero.
+
+ @param aValue The retrieved definition value for
+ the alias.
+ */
+
+ void CAuthRepository::GetAliasDefinitionL(TInt aKey, TDes16& aValue)
+ {
+ User::LeaveIfError(iRepository->Get(EAuthAliasesExpr+aKey, aValue));
+ }