stif/stif_plat/inc/TestEngineClient.inl
branchRCL_3
changeset 59 8ad140f3dd41
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stif/stif_plat/inc/TestEngineClient.inl	Wed Oct 13 16:17:58 2010 +0300
@@ -0,0 +1,303 @@
+/*
+* 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 "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: This file contains implementation of TestEngineClient's 
+* inline functions.
+*
+*/
+
+#ifndef TEST_ENGINE_CLIENT_INL
+#define TEST_ENGINE_CLIENT_INL
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// DATA TYPES
+// None
+
+// FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+// None
+
+// CLASS DECLARATION
+
+/*
+-------------------------------------------------------------------------------
+
+    Class:CFixedFlatArray
+
+    Method: CFixedFlatArray
+
+    Description: Default constructor
+
+    C++ default constructor can NOT contain any code, that
+    might leave.
+
+    Parameters: None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+template <class T>
+CFixedFlatArray<T>::CFixedFlatArray() :
+    iArray( NULL ),
+    iBufferPtr(0,0)
+    {
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: ConstructL
+
+    Description: Symbian OS second phase constructor
+
+    Symbian OS default constructor can leave.
+
+    Parameters: const TInt aCount: in: Count of contents
+
+    Return Values: None
+
+    Errors/Exceptions: Leaves if memory allocation for iArray of iBuffer fails
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+template <class T>
+void CFixedFlatArray<T>::ConstructL( const TInt aCount )
+    {
+
+    iCount = aCount;
+    iArray = new (ELeave) T[iCount];
+
+    const TInt size = iCount * sizeof (T);
+    iBuffer = HBufC8::NewMaxL ( size );
+
+    iBufferPtr.Set( iBuffer->Des() );
+    iBufferPtr.SetLength( size );
+    iBufferPtr.Set( (TUint8*) iArray, size,size );
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: NewL
+
+    Description: Two-phased constructor.
+
+    Parameters: None
+
+    Return Values: CFixedFlatArray<T>: Array of CFixedFlatArray<T> objects
+
+    Errors/Exceptions: Leaves if ConstructL leaves
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+template <class T>
+CFixedFlatArray<T>* CFixedFlatArray<T>::NewL(TInt aSize) 
+    {
+    CFixedFlatArray<T>* self = new ( ELeave ) CFixedFlatArray<T>();
+    CleanupStack::PushL( self );
+    self->ConstructL(aSize);
+    CleanupStack::Pop();
+    return self;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: ~CFixedFlatArray
+
+    Description: Destructor
+
+    Parameters: None
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/    
+template <class T>
+CFixedFlatArray<T>::~CFixedFlatArray()
+    {    
+    delete[] iArray;
+    delete iBuffer;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: Des
+
+    Description: Returns descriptor for array
+
+    Parameters: None
+
+    Return Values: TPtr8&: Descriptor for array
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/ 
+template <class T>
+TPtr8& CFixedFlatArray<T>::Des()
+    {   
+    return iBufferPtr;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: operator[]
+
+    Description: Returns index operator
+
+    Parameters: TInt aIndex: in: Index of object to be returned
+
+    Return Values: T&: Reference to requested object
+
+    Errors/Exceptions: Panics if aIndex is out of range
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/ 
+template <class T>
+T& CFixedFlatArray<T>::operator[] ( TInt aIndex ) const
+    {
+    CheckIndex( aIndex );
+
+    return iArray[aIndex];
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: Count
+
+    Description: Returns count
+
+    Parameters: None
+
+    Return Values: TInt: iCount
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+template <class T>
+TInt CFixedFlatArray<T>::Count() const
+    {
+    return iCount;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: Set
+
+    Description: Set buffer to array.
+
+    Parameters: TInt aIndex: in: Index
+                T& aBuf: in: Buffer
+
+    Return Values: None
+
+    Errors/Exceptions: None
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+template <class T>
+void CFixedFlatArray<T>::Set( TInt aIndex, T& aBuf )
+    {
+    CheckIndex( aIndex );
+
+    iArray[aIndex] = aBuf;
+
+    }
+
+/*
+-------------------------------------------------------------------------------
+
+    Class: CFixedFlatArray
+
+    Method: CheckIndex
+
+    Description: Set buffer to array.
+
+    Parameters: TInt aIndex: in: Index to be checked
+
+    Return Values: None
+
+    Errors/Exceptions: Panics if index is incorrect
+
+    Status: Approved
+
+-------------------------------------------------------------------------------
+*/
+template <class T>
+void CFixedFlatArray<T>::CheckIndex( TInt aIndex ) const
+    {
+    if ( aIndex < 0 || aIndex >= iCount )
+        {
+        User::Panic( _L( "CFixedFlatArray: Array index out of range" ), KErrArgument );
+        }
+
+    }
+
+#endif      // TEST_ENGINE_CLIENT_INL
+
+// End of File