diff -r e9b96e674847 -r 5b2a402e96ac tsrc/testtools/stubsrv/inc/stubclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsrc/testtools/stubsrv/inc/stubclient.h Thu Aug 19 10:54:11 2010 +0300 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2010 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: +* +*/ + +#ifndef STUBCLIENT_H +#define STUBCLIENT_H + +#include +#include +#include + +class RStubClient : public RSessionBase + { + +public: + + /** + * Queues an API behavior specification to Stub server. + * + * This method is called by API behavior controllers, e.g. a module test, to specify the next expected + * behavior of an API. When InvokeApi() is called, the first queued behavior matching + * the lib identifier and API identifier will be extracted and returned. + * + * @param aApi an API behavior. + * @param aExeDuration, specifies the execution time of InvokeApi() in microseconds. + * value less than 0 means never completing InvokeApi(); + * value 0 means completing InvokeApi() asap; + * value 1000000 means InvokeApi() takes 1 sec execution time; + * and so on. + */ + void EnqueBehavior(const TApiBehavior& aBeh, TInt aExeDuration = 0); + + /** + * Deletes all queued behaviors of the specified API. + * + * @param aLib the identifier of a stub + * @param aApi the identifier of the API + */ + void DeleteBehaviors(TUint aLib, TUint aApi); + + /** + * Invokes an API. + * + * If there is a queued behavior for this API, stub server will perform according to the execution setting; + * otherwise stub server will act according to the specified mode. + * + * @param aBehPckg contains the lib and API identifiers when passed in; + * will contain the behavior at complete. + * @param aMode the mode to be used if no queued behavior is found for the specified API; + * In case of ECompleteIfNoBehaviorSet mode, stub server will complete this function + * immediately and return a default TApiBehavior(TUint, TUint); + * stub server will keep this function call pending until a behavior is queued if the mode + * is ESuspendIfBehaviorSet. + */ + void InvokeApi(TApiBehaviorPckg& aBehPckg, TApiInvokeMode aMode); + + /** + * asynchronous version of InvokeAPI(). + * + * Leaves if the completion code in the behavior is not KErrNone + */ + void InvokeApiL(TApiBehaviorPckg& aBehPckg, TRequestStatus& aStatus, TApiInvokeMode aMode); + + /** + * Cancels InvokeApi() + * @param aLib the identifier of library which provides the API + * @param aApi the identifier of the API + */ + void InvokeApiCancel(TUint aLib, TUint aApi); + +public: + + /** + * @return Version information about the server + */ + TVersion Version() const; + + /** + * Establishes a session with stub server. + * @return error code + */ + TInt Connect(); + +private: + + void CheckSession(); + + }; + +#endif // STUBCLIENT_H