imagingtestenv/imagingtestfw/include/TestFrameworkIpc.inl
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 17 Sep 2010 08:38:03 +0300
changeset 2 4e4fc2e0e9c5
parent 0 5752a19fdefe
permissions -rw-r--r--
Revision: 201037 Kit: 201037

/*
* Copyright (c) 2003 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 __TESTFRAMEWORKIPC_INL__
#define __TESTFRAMEWORKIPC_INL__


//
// RMmfSessionBaseX
//

// Pass throughs - equiv to using...

inline TInt RMmfSessionBaseX::SendReceive(TInt aFunction) const
	{
	return RMmfSessionBase::SendReceive(aFunction);
	}
	
inline void RMmfSessionBaseX::SendReceive(TInt aFunction, TRequestStatus& aStatus) const
	{
	RMmfSessionBase::SendReceive(aFunction, aStatus);
	}
	
inline TInt RMmfSessionBaseX::SendReceive(TInt aFunction, TInt aParam0) const
	{
	return RMmfSessionBase::SendReceive(aFunction, aParam0);
	}
	
inline TInt RMmfSessionBaseX::SendReceive(TInt aFunction, TInt aParam0, TInt aParam1) const
	{
	return RMmfSessionBase::SendReceive(aFunction, aParam0, aParam1);
	}
	
inline void RMmfSessionBaseX::SendReceive(TInt aFunction, TInt aParam0, TRequestStatus& aStatus) const
	{
	RMmfSessionBase::SendReceive(aFunction, aParam0, aStatus);
	}
	
inline void RMmfSessionBaseX::SendReceive(TInt aFunction, TInt aParam0, TInt aParam1, TRequestStatus& aStatus) const
	{
	RMmfSessionBase::SendReceive(aFunction, aParam0, aParam1, aStatus);
	}
	
inline TInt RMmfSessionBaseX::SendReceive(TInt aFunction, const TDesC8& aParam0) const
	{
	return RMmfSessionBase::SendReceive(aFunction, aParam0);
	}
	
inline TInt RMmfSessionBaseX::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1) const
	{
	return RMmfSessionBase::SendReceive(aFunction, aParam0, aParam1);
	}
	
inline TInt RMmfSessionBaseX::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2) const
	{
	return RMmfSessionBase::SendReceive(aFunction, aParam0, aParam1, aParam2);
	}
	
inline void RMmfSessionBaseX::SendReceive(TInt aFunction, const TDesC8& aParam0, TRequestStatus& aStatus) const
	{
	RMmfSessionBase::SendReceive(aFunction, aParam0, aStatus);
	}
	
inline void RMmfSessionBaseX::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TRequestStatus& aStatus) const
	{
	RMmfSessionBase::SendReceive(aFunction, aParam0, aParam1, aStatus);
	}
	
inline void RMmfSessionBaseX::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TRequestStatus& aStatus) const
	{
	RMmfSessionBase::SendReceive(aFunction, aParam0, aParam1, aParam2, aStatus);
	}

// New call

inline TInt RMmfSessionBaseX::SendReceive(TInt aFunction, const TDesC& aParam0, TInt aParam1) const
	{
#ifdef __MMF_USE_IPC_V2__
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,aParam1));
#else
	TAny* p[KMaxMessageArguments];
	p[0] = static_cast<TAny*>(const_cast<TDesC16*>(&aParam0));
	p[1] = reinterpret_cast<TAny*>(aParam1);
	p[2] = NULL;
	p[3] = NULL;
	return RSessionBase::SendReceive(aFunction, p);
#endif __MMF_USE_IPC_V2__
	}

//
// MmfMEssageUtilX
//

// Using calls

inline TInt MmfMessageUtilX::Read(const RMmfIpcMessage& aMessage, TInt aParam, TDes8& aResult)
	{
	return MmfMessageUtil::Read(aMessage, aParam, aResult);
	}

inline TInt MmfMessageUtilX::Write(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC8& aValue)
	{
	return MmfMessageUtil::Write(aMessage, aParam, aValue);
	}

inline void MmfMessageUtilX::ReadL(const RMmfIpcMessage& aMessage, TInt aParam, TDes8& aResult)
	{
	MmfMessageUtil::ReadL(aMessage, aParam, aResult);
	}

inline void MmfMessageUtilX::WriteL(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC8& aValue)
	{
	MmfMessageUtil::WriteL(aMessage, aParam, aValue);
	}


// New calls

inline void MmfMessageUtilX::ReadL(const RMmfIpcMessage& aMessage, TInt aParam, TDes16& aResult)
	{
#ifdef __MMF_USE_IPC_V2__
	User::LeaveIfError(aMessage.Read(aParam, aResult));
#else
	// expect aParam to be a literal - so this code should optimise out
	if (aParam==0)
		aMessage.ReadL(aMessage.Ptr0(), aResult);
	else if (aParam==1)
		aMessage.ReadL(aMessage.Ptr1(), aResult);
	else if (aParam==2)
		aMessage.ReadL(aMessage.Ptr2(), aResult);
	else if (aParam==3)
		aMessage.ReadL(aMessage.Ptr3(), aResult);
	else
		User::Leave(KErrArgument);
#endif __MMF_USE_IPC_V2__
	}

inline void MmfMessageUtilX::WriteL(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC16& aValue)
	{
#ifdef __MMF_USE_IPC_V2__
	User::LeaveIfError(aMessage.Write(aParam, aValue));
#else
	// expect aParam to be a literal - so this code should optimise out
	if (aParam==0)
		aMessage.WriteL(aMessage.Ptr0(), aValue);
	else if (aParam==1)
		aMessage.WriteL(aMessage.Ptr1(), aValue);
	else if (aParam==2)
		aMessage.WriteL(aMessage.Ptr2(), aValue);
	else if (aParam==3)
		aMessage.WriteL(aMessage.Ptr3(), aValue);
	else
		User::Leave(KErrArgument);
#endif __MMF_USE_IPC_V2__
	}

inline TInt MmfMessageUtilX::Read(const RMmfIpcMessage& aMessage, TInt aParam, TDes16& aResult)
	{
#ifdef __MMF_USE_IPC_V2__
	return aMessage.Read(aParam, aResult);
#else
	TRAPD(error, ReadL(aMessage, aParam, aResult));
	return error;
#endif __MMF_USE_IPC_V2__
	}

inline TInt MmfMessageUtilX::Write(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC16& aValue)
	{
#ifdef __MMF_USE_IPC_V2__
	return aMessage.Write(aParam, aValue);
#else
	TRAPD(error, WriteL(aMessage, aParam, aValue));
	return error;
#endif __MMF_USE_IPC_V2__
	}



#endif // __TESTFRAMEWORKIPC_INL__