1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/mmf/common/mmfipcserver.inl Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -0,0 +1,115 @@
1.4 +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// include\mmf\common\mmfipc.inl
1.18 +//
1.19 +//
1.20 +
1.21 +#ifdef __MMF_USE_IPC_V2__
1.22 +
1.23 +//
1.24 +// CMmfIpcSession
1.25 +//
1.26 +
1.27 +inline void CMmfIpcSession::CreateL(const CMmfIpcServer& /*aServer*/)
1.28 + {
1.29 + // default does nothing
1.30 + }
1.31 +
1.32 +inline void CMmfIpcSession::CreateL()
1.33 + {
1.34 + const CMmfIpcServer* server = static_cast<const CMmfIpcServer*>(Server());
1.35 + CreateL(*server); // simulate CSession::CreateL() call
1.36 + }
1.37 +
1.38 +//
1.39 +// CMmfIcpServer
1.40 +//
1.41 +
1.42 +inline CMmfIpcServer::CMmfIpcServer(TInt aPriority,TServerType aType):
1.43 + CServer2(aPriority,aType)
1.44 + {
1.45 + }
1.46 +
1.47 +inline CSession2* CMmfIpcServer::NewSessionL(const TVersion& aVersion, const RMessage2& /*aMessage*/) const
1.48 + {
1.49 + return NewSessionL(aVersion);
1.50 + }
1.51 +
1.52 +#endif //__MMF_USE_IPC_V2__
1.53 +
1.54 +//
1.55 +// MmfMessageUtil
1.56 +//
1.57 +
1.58 +inline void MmfMessageUtil::ReadL(const RMmfIpcMessage& aMessage, TInt aParam, TDes8& aResult)
1.59 + {
1.60 +#ifdef __MMF_USE_IPC_V2__
1.61 + User::LeaveIfError(aMessage.Read(aParam, aResult));
1.62 +#else
1.63 + // expect aParam to be a literal - so this code should optimise out
1.64 + if (aParam==0)
1.65 + aMessage.ReadL(aMessage.Ptr0(), aResult);
1.66 + else if (aParam==1)
1.67 + aMessage.ReadL(aMessage.Ptr1(), aResult);
1.68 + else if (aParam==2)
1.69 + aMessage.ReadL(aMessage.Ptr2(), aResult);
1.70 + else if (aParam==3)
1.71 + aMessage.ReadL(aMessage.Ptr3(), aResult);
1.72 + else
1.73 + User::Leave(KErrArgument);
1.74 +#endif //__MMF_USE_IPC_V2__
1.75 + }
1.76 +
1.77 +inline void MmfMessageUtil::WriteL(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC8& aValue)
1.78 + {
1.79 +#ifdef __MMF_USE_IPC_V2__
1.80 + User::LeaveIfError(aMessage.Write(aParam, aValue));
1.81 +#else
1.82 + // expect aParam to be a literal - so this code should optimise out
1.83 + if (aParam==0)
1.84 + aMessage.WriteL(aMessage.Ptr0(), aValue);
1.85 + else if (aParam==1)
1.86 + aMessage.WriteL(aMessage.Ptr1(), aValue);
1.87 + else if (aParam==2)
1.88 + aMessage.WriteL(aMessage.Ptr2(), aValue);
1.89 + else if (aParam==3)
1.90 + aMessage.WriteL(aMessage.Ptr3(), aValue);
1.91 + else
1.92 + User::Leave(KErrArgument);
1.93 +#endif //__MMF_USE_IPC_V2__
1.94 + }
1.95 +
1.96 +inline TInt MmfMessageUtil::Read(const RMmfIpcMessage& aMessage, TInt aParam, TDes8& aResult)
1.97 + {
1.98 +#ifdef __MMF_USE_IPC_V2__
1.99 + return aMessage.Read(aParam, aResult);
1.100 +#else
1.101 + TRAPD(error, ReadL(aMessage, aParam, aResult));
1.102 + return error;
1.103 +#endif //__MMF_USE_IPC_V2__
1.104 + }
1.105 +
1.106 +inline TInt MmfMessageUtil::Write(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC8& aValue)
1.107 + {
1.108 +#ifdef __MMF_USE_IPC_V2__
1.109 + return aMessage.Write(aParam, aValue);
1.110 +#else
1.111 + TRAPD(error, WriteL(aMessage, aParam, aValue));
1.112 + return error;
1.113 +#endif //__MMF_USE_IPC_V2__
1.114 + }
1.115 +
1.116 +
1.117 +
1.118 +