--- a/guestrendering/vghwserialiser/inc/serializedfunctioncall.h Wed Sep 29 09:49:13 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-// 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 SERIALIZEDFUNCTIONCALL_H_
-#define SERIALIZEDFUNCTIONCALL_H_
-
-#include "serializerplatform.h"
-
-class RemoteFunctionCallData;
-//Copy operations for simple and array parameters
-class MDataCopier
- {
-public:
- virtual TInt CopyData( TUint8* aDest, const TUint8* aSource, TUint32 aSize ) = 0;
- virtual TInt CopyVector( TUint8* aDest, const TUint8* aSource, TUint32 aSize ) = 0;
- };
-
-/**
- * Serialized function call.
- * Serializes the parameters to a given memory location.
- */
-class SerializedFunctionCall
- {
-public:
-
- //Parse error
- enum TError
- {
- ESuccess,
- EMoreData,
- EParseError
- };
-
- //Parse state
- enum TParseState
- {
- EReadingApiUid,
- EReadingOpCode,
- EReadingTransactionId,
- EReadingParameterCount,
- EReadingProcessId,
- EReadingThreadId,
- EReadingOpType,
- EReadingReturnValue,
- EReadingParamDir,
- EReadingParamType,
- EReadingSimpleParamType,
- EReadingSimpleParamData,
- EReadingVectorParamType,
- EReadingVectorParamDataSize,
- EReadingVectorParamVectorLength,
- EReadingVectorParamCallerAddress,
- EReadingVectorParamData,
- EReadingDone
- };
-
- //Constructor
- SER_IMPORT_C SerializedFunctionCall( RemoteFunctionCallData& aRFC, MDataCopier* aDataCopier = NULL );
-
- SER_IMPORT_C void SetDataCopier( MDataCopier* aDataCopier );
-
- //Parses a serialized function call. Updates parameter array and utilises data copier to
- // copy array parameters
- SER_IMPORT_C TInt ParseBuffer( const TUint8* aBuffer, const TInt aBufferLength );
-
- //Serializes function call to a stream.
- SER_IMPORT_C TInt WriteToBuffer( TUint8* aBuffer, const TInt aStreamMaxLength, TInt aOffset = 0 );
-
-private:
-
- //Writes header to stream
- TInt WriteHeaderToBuffer( TUint8* aBuffer, const TInt aStreamMaxLength, TInt aOffset = 0 );
-
- //Reads header from buffer
- TInt ReadHeaderFromBuffer( const TUint8* aBuffer, const TInt aBufferLength );
-
- //Writes a data. Accounts destination buffer overflow and can continue write
- // from a given offset
- TInt Write( TUint8* aDest, TInt& aDestIndex, const TInt aDestSize,
- const TUint8* aSource, const TInt aSize, TInt& aSourceIndex,
- const TInt aOffset, TBool aVector );
-
- //Serializes a simple param to a current stream
- TInt WriteParam( const TUint8* aParam, const TInt aParamSize );
-
- //Serializes an array param to a current stream
- //TInt WriteVector( const TUint8* aParam, const TInt aParamSize );
- TInt WriteVector( const TUint8* aParam, const TInt32 aDataTypeSize, const TInt aVectorSize, const TInt8 aDataTypeAlignment );
-
- //Initialises write state
- void StartWrite( TUint8* aBuffer, const TInt aStreamMaxLength, TInt aOffset = 0 );
-
- //Gets a direct pointer to the stream data for an array parameter
- //TUint8* ReadVector( const TInt aParamSize );
- TUint8* ReadVectorPointer( const TInt32 aDataTypeSize, const TInt aVectorSize, const TInt8 aDataTypeAlignment );
-
- //Reads simple parameter from a stream
- TInt ReadParam( TUint8* aParam, const TInt aParamSize );
-
- //Reads an array parameter from a stream and utilises data copier for data transfer
- //TInt ReadVectorParam( TUint8* aParam, const TInt aParamSize );
- TInt ReadVectorParam( TUint8* aParam, const TInt32 aDataTypeSize, const TInt aVectorSize, const TInt8 aDataTypeAlignment );
-
- //Reads a data. Accounts source buffer overflow and can continue read
- // from a given offset
- TInt Read( TUint8* aDest, TInt& aDestIndex, const TInt aDestSize,
- const TUint8* aSource, TInt& aSourceIndex, const TInt aSourceSize, TBool aVector );
-
- //Initialises a read state
- void StartRead( const TUint8* aBuffer, const TInt aBufferLength );
-
- //Last error
- TError GetLastError() { return iError; }
-
- RemoteFunctionCallData& GetRemoteFunctionCall() { return iRFC; }
-
-private:
- RemoteFunctionCallData& iRFC;
- MDataCopier* iDataCopier;
-
- TError iError;
-
- struct WriteState
- {
- //Write state
- TUint8* iBuffer;
- TInt iDestIndex;
- TInt iStreamMaxLength;
- TInt iSourceIndex;
- TInt iOffset;
- };
-
- struct ReadState
- {
- //Read state
- TInt iReadDestOffset;
- const TUint8* iReadBuffer;
- TInt iReadBufferIndex;
- TInt iReadBufferLength;
- TParseState iParseState;
- TInt iParamsIndex;
- };
-
- union
- {
- WriteState iWriteState;
- ReadState iReadState;
- };
-
- };
-
-#endif