diff -r 000000000000 -r 1bce908db942 multimediacommsengine/mmcesrv/mmceserver/src/mcecsserveritc.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/mmcesrv/mmceserver/src/mcecsserveritc.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,275 @@ +/* +* Copyright (c) 2005 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: +* +*/ + + + + +#include "mcecsserveritc.h" +#include "mceserver.pan" +#include "mcelogs.h" + + +const TInt KInt0 = 0; +const TInt KInt1 = 1; +const TInt KInt2 = 2; +const TInt KInt3 = 3; + + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::NewL +// ----------------------------------------------------------------------------- +// +CMceCsServerITC* CMceCsServerITC::NewL () + { + CMceCsServerITC* self = CMceCsServerITC::NewLC (); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::NewLC +// ----------------------------------------------------------------------------- +// +CMceCsServerITC* CMceCsServerITC::NewLC () + { + CMceCsServerITC* self = new (ELeave) CMceCsServerITC; + CleanupStack::PushL (self); + return self; + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::CMceCsServerITC +// ----------------------------------------------------------------------------- +// +CMceCsServerITC::CMceCsServerITC () + { + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::~CMceCsServerITC +// ----------------------------------------------------------------------------- +// +CMceCsServerITC::~CMceCsServerITC () + { + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::WriteL +// ----------------------------------------------------------------------------- +// +void CMceCsServerITC::WriteL (const RMessage2& aMessage, + const TDesC8& aDes, + TMceItcArguments aItcArgIndex) const + { + WriteL (aItcArgIndex,aMessage,aDes); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::WriteL +// ----------------------------------------------------------------------------- +// +void CMceCsServerITC::WriteL (const RMessage2& aMessage, + const TMceIds& aIds) const + { + TPckgBuf mceIdsPckg(aIds); + WriteL (EMceItcArgIds, aMessage, mceIdsPckg); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::WriteL +// ----------------------------------------------------------------------------- +// +void CMceCsServerITC::WriteL (const RMessage2& aMessage, + const TMceMessageBufSizes aSizes) const + { + TPckgBuf bufSizesPckg(aSizes); + WriteL (EMceItcArgBufSizes, aMessage, bufSizesPckg); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::ReadMCEIdsL +// ----------------------------------------------------------------------------- +// +TMceIds CMceCsServerITC::ReadMCEIdsL (const RMessage2& aMessage) const + { + TPckgBuf mceIdsPckg; + aMessage.ReadL (EMceItcArgIds, mceIdsPckg); + return mceIdsPckg(); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::ReadTUint32L +// ----------------------------------------------------------------------------- +// +TUint32 CMceCsServerITC::ReadTUint32L (const RMessage2& aMessage, + TMceItcArguments aItcArgIndex) const + { + TPckgBuf mceDataPckg; + aMessage.ReadL (aItcArgIndex, mceDataPckg); + return mceDataPckg(); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::ReadIntL +// ----------------------------------------------------------------------------- +// +TInt CMceCsServerITC::ReadIntL(const RMessage2& aMessage, + TMceItcArguments aItcArgIndex) const + { + + TInt integer = 0; + switch (static_cast(aItcArgIndex)) + { + case KInt0: + integer = aMessage.Int0(); + break; + case KInt1: + integer = aMessage.Int1(); + break; + case KInt2: + integer = aMessage.Int2(); + break; + case KInt3: + integer = aMessage.Int3(); + break; + default: + User::Leave(KErrNotFound); + } + return integer; + } + + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::ReadLC +// ----------------------------------------------------------------------------- +// +HBufC8* CMceCsServerITC::ReadLC (const RMessage2& aMessage, + TMceItcArguments aItcArgIndex) const + { + TInt length = aMessage.GetDesLength (aItcArgIndex); + if (length < 0) + { + User::Leave (KErrBadDescriptor); + } + HBufC8* buf = HBufC8::NewLC (length); + if (length > 0) + { + TPtr8 bufPtr(buf->Des()); + aMessage.ReadL (aItcArgIndex, bufPtr); + } + return buf; + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::Function +// ----------------------------------------------------------------------------- +// +TInt CMceCsServerITC::Function (const RMessage2& aMessage) const + { + return aMessage.Function(); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::Complete +// ----------------------------------------------------------------------------- +// +void CMceCsServerITC::Complete (const RMessage2& aMessage, + TInt aCompletionCode) const + { + aMessage.Complete (aCompletionCode); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::PanicClient +// ----------------------------------------------------------------------------- +// +void CMceCsServerITC::PanicClient(const RMessage2& aMessage, TInt aPanic) const + { + RThread client; + aMessage.Client(client); + client.Panic(KMceServerPanic, aPanic); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::ITCArgPtr +// ----------------------------------------------------------------------------- +// +const TAny* CMceCsServerITC::ITCArgPtr (TMceItcArguments aItcArgIndex, + const RMessage2& aMessage) const + { + const TAny* ptr; + switch (static_cast(aItcArgIndex)) + { + case KInt0: ptr = aMessage.Ptr0(); break; + case KInt1: ptr = aMessage.Ptr1(); break; + case KInt2: ptr = aMessage.Ptr2(); break; + case KInt3: ptr = aMessage.Ptr3(); break; + default: ptr = 0; break; + } + return ptr; + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::ITCArgInt +// ----------------------------------------------------------------------------- +// +TInt CMceCsServerITC::ITCArgInt (TMceItcArguments aItcArgIndex, + const RMessage2& aMessage) const + { + TInt integer; + switch (static_cast(aItcArgIndex)) + { + case KInt0: integer = aMessage.Int0(); break; + case KInt1: integer = aMessage.Int1(); break; + case KInt2: integer = aMessage.Int2(); break; + case KInt3: integer = aMessage.Int3(); break; + default: integer = KErrArgument; break; + } + return integer; + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::WriteL +// ----------------------------------------------------------------------------- +// +void CMceCsServerITC::WriteL (TMceItcArguments aItcArgIndex, + const RMessage2& aMessage, + const TDesC8& aDes) const + { + TInt length = aMessage.GetDesMaxLength(aItcArgIndex); + if (length < 0) + { + User::Leave (KErrArgument); + } + if (length < aDes.Length()) + { + User::Leave (KErrOverflow); + } + aMessage.WriteL (aItcArgIndex, aDes); + } + +// ----------------------------------------------------------------------------- +// CMceCsServerITC::ReadL +// ----------------------------------------------------------------------------- +// +HBufC8* CMceCsServerITC::ReadL (const RMessage2& aMessage, + TMceItcArguments aItcArgIndex) const + { + HBufC8* buf = ReadLC(aMessage,aItcArgIndex); + CleanupStack::Pop(buf); + return buf; + }