tsrc/testtools/stubsrv/inc/apibehavior.h
branchRCL_3
changeset 22 5b2a402e96ac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/testtools/stubsrv/inc/apibehavior.h	Thu Aug 19 10:54:11 2010 +0300
@@ -0,0 +1,137 @@
+/*
+* 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 APIBEHAVIOR_H
+#define APIBEHAVIOR_H
+
+#include <e32base.h>
+
+const TInt KApiOutputSize = 512;
+
+/**
+ * The specification of the behavior of an API.
+ */
+NONSHARABLE_CLASS(TApiBehavior)
+{
+public:
+
+    /**
+     * Constructs by default.
+     * Members are initialized to:
+     *	iLib: 0
+     *	iApi:  0
+     *	iCompleteCode:  0.
+     *  iAsyncCompleteCode:  0.
+     *	iOutput: KNullDes8.
+     */
+    IMPORT_C TApiBehavior();
+
+    /**
+     * Constructs by specified.
+     * @param aLib the library identifier
+     * @param aApi the API identifier
+     *
+     * Other members are initialized to:
+     *	iCompleteCode:  0.
+     *  iAsyncCompleteCode:  0.
+     *	iOutput: KNullDes8.
+     */
+    IMPORT_C TApiBehavior(TUint aLib, TUint aApi);
+
+    /**
+     * Construct by specified.
+     *
+     * @param aLib the library identifier
+     * @param aApi the API identifier
+     * @param aCompleteCode the expected completion code of the API call
+     * @param aAsyncCompleteCode the expected asynchronous completion code of the API call
+     * @param aOutput the expected output
+     */
+    IMPORT_C TApiBehavior(TUint aLib, TUint aApi, 
+        TInt aCompleteCode, TInt aAsyncCompleteCode,
+        const TDesC8& aOutput);
+
+    /**
+     * Compares if the identifiers of this API match with the specified.
+     * @param aLib the library identifier
+     * @param aApi the APi identifier
+     *
+     * @return ETrue if the ids match; EFalse otherwise.
+     */
+    IMPORT_C TBool MatchId(TUint aLib, TUint aApi) const;
+    
+    /**
+     * Compares if the identifiers of this API match with the identifiers of the specified.
+     * @param aLib the library identifier
+     * @param aApi the APi identifier
+     *
+     * @return ETrue if the ids match; EFalse otherwise.
+     */
+    IMPORT_C TBool MatchId(const TApiBehavior& aBeh) const;
+    
+    /**
+     * Operator ==
+     *
+     * @return ETrue if if the content of this is identical with the specified; EFalse otherwise.
+     */
+    IMPORT_C TBool operator==(const TApiBehavior& aBeh) const;
+    
+    /**
+     * Operator !=
+     *
+     * @return ETrue if if the content of this is different with the specified; EFalse otherwise.
+     */
+    IMPORT_C TBool operator!=(const TApiBehavior& aBeh) const;
+
+public:
+    
+    /** 
+     * The identifier of the library that provides this API
+     */
+	TUint iLib;
+	
+    /** 
+     * The identifier of this API in the library.
+     *
+     * iLib and iApi identify a unique API in the scope of testing framework.
+     */
+	TUint iApi;
+	
+	/**
+	 * The completion code of the API call, either the return error code if 
+	 * the function returns one or the leave code if the function is leavable.
+	 * This should be ignored by void type APIs.
+	 */
+	TInt iCompleteCode;
+	
+    /** 
+     * The completion code of asynchronous service provided by this API.
+     * This should be ignored by synchronous API.
+     */
+    TInt iAsyncCompleteCode;
+    
+    /**
+     * The expected output of this API.
+     */
+	TBuf8<KApiOutputSize> iOutput;
+	};
+
+typedef TPckgBuf<TApiBehavior> TApiBehaviorPckgBuf;
+typedef TPckg<TApiBehavior> TApiBehaviorPckg;
+
+#endif
+