diff -r cf642210ecb7 -r 5b5ca9f4f7b4 cryptomgmtlibs/securityutils/source/secsettings/secsettingsclient/rsecsettingssession.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cryptomgmtlibs/securityutils/source/secsettings/secsettingsclient/rsecsettingssession.cpp Thu Jan 07 13:42:40 2010 +0200 @@ -0,0 +1,107 @@ +/* +* 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: +* RSecSettingsSession implementation. See class and function definitions +* for more detail. +* +*/ + + +/** + @file +*/ + + +#include +#include +#include +#include "secsettingscommon.h" + +namespace SecuritySettingsServer + { + + +EXPORT_C RSecSettingsSession::RSecSettingsSession() +/** + This constructor provides a single point of definition from + which the superclass constructor is called. + */ +: RScsClientBase() + { + // empty. + } + +EXPORT_C TInt RSecSettingsSession::Connect() +/** + Connect to the SecSettings server. + + The thread which calls this function must be the same one which later calls Close(). + + @return Symbian OS error code where KErrNone indicates + success and any other value indicates failure. + */ + { + TVersion v = SecuritySettingsServer::Version(); + TUidType serverFullUid = SecuritySettingsServer::ServerImageFullUid(); + + TInt r = RScsClientBase::Connect( + SecuritySettingsServer::KSecSettingsServerName, v, SecuritySettingsServer::KServerImageName, serverFullUid); + + + if(r != KErrNone) + { + Close(); + } + + return r; + } + + + + +EXPORT_C void RSecSettingsSession::Close() +/** +Frees the configuration object and calls RScsClientBase::Close + +This function MUST be called by the same thread which Connect(). +*/ + { + RScsClientBase::Close(); + } + + +EXPORT_C TInt RSecSettingsSession::SettingValueL(TUid aUidRepository, TUint32 aKey) +/** + * Retrieves the value of the setting from the repository. + * + * @param aUidRepository UID of the Central Repository. + * @param aKey 32-bit unsigned Key identifying the setting. + * @return Value of the setting. + */ + { + TPckgBuf p; + TIpcArgs args(aUidRepository.iUid, aKey, &p); + + User::LeaveIfError(CallSessionFunction(ESettingValue, args)); + + TInt Value = p(); + + return Value; + } + + + } // End of namespace SecuritySettingsServer. + +// End of file +