diff -r 000000000000 -r bde4ae8d615e os/security/cryptomgmtlibs/securitycommonutils/test/source/scstestclient/rscstestsession.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/security/cryptomgmtlibs/securitycommonutils/test/source/scstestclient/rscstestsession.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,139 @@ +/* +* Copyright (c) 2007-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: +* Client-side API tests an implementation of the session count server +* by implementing a handle to a session. +* +*/ + + +/** + @file +*/ + + +#include "scstestclient.h" +#include "scstestcommon.h" + + +EXPORT_C RScsTestSession::RScsTestSession() +/** + This constructor defines a single point from which + the base class constructor is called. + */ +: RScsClientBase() + { + // empty. + } + +EXPORT_C TInt RScsTestSession::Connect() +/** + Connect to the SCS test server using the default version. + + @return Symbian OS error code where KErrNone indicates + success and any other value indicates failure. + */ + { + const TVersion serverVersion = ScsTestImpl::Version(); + return Connect(serverVersion); + } + +EXPORT_C TInt RScsTestSession::Connect(const TVersion& aVersion) +/** + Connect to the SCS test server with the supplied version. This + function is defined to test the version checking functionality in + CScsServer. A client API would normally just ask for a server + version which at least matches its own. + + @param aVersion Server version to ask for. + @return Symbian OS error code where KErrNone indicates + success and any other value indicates failure. + */ + { + const TUidType serverFullUid = ScsTestImpl::ServerImageFullUid(); + + TInt r = RScsClientBase::Connect( + ScsTestImpl::KServerName, aVersion, + ScsTestImpl::KServerImageName, serverFullUid); + + return r; + } + +EXPORT_C TInt RScsTestSession::SendCustomFunction(TInt aFunction) +/** + Sends the supplied function identifier to the server with + no IPC arguments. This function should be used to test the + server can handle an invalid SCS or session function. + + @param aFunction Function identifier to send to server-side + session. This is sent as-is, and can use the + SCS field. + */ + { + return SendReceive(aFunction); + } + +EXPORT_C TInt RScsTestSession::NukeServer() +/** + Calls an synchronous function which causes the server to panic +*/ + { + return CallSessionFunction(ScsTestImpl::ESessNukeServer); + } + +EXPORT_C TInt RScsTestSession::Double(TInt& aValue) +/** + Calls a synchronous session function to ensure the function + call is routed to the session subclass on the server side. + + @param aValue An arbitrary integer. On completion + this should be double its entry value. + @return Symbian OS error code where KErrNone indicates + success and any other value indicates failure. + */ + { + TPckg valPckg(aValue); + TIpcArgs ipc(&valPckg); + return CallSessionFunction(ScsTestImpl::ESessDouble, ipc); + } + +EXPORT_C void RScsTestSession::Treble(TDes8& aValue, TRequestStatus& aStatus) +/** + Calls an asynchronous function to test the SCS can successfully manage + asynchronous requests. + + @param aValue Describes an integer, e.g. TPckgBuf. + The descriptor must be supplied by the caller + instead of being constructed in this function + because it must persist until the request has + been completed. + @param aStatus The server will complete this status object + when it has handled the function. + @see CancelTreble + */ + { + TIpcArgs ipc(&aValue); + CallSessionFunction(ScsTestImpl::ESessTreble, ipc, aStatus); + } + +EXPORT_C void RScsTestSession::CancelTreble() +/** + Cancel an outstanding request set up with Treble. This function has + no effect if there is no outstanding request. + + @see Treble + */ + { + CancelSessionFunction(ScsTestImpl::ESessTreble); + }