--- /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<TMceIds> mceIdsPckg(aIds);
+ WriteL (EMceItcArgIds, aMessage, mceIdsPckg);
+ }
+
+// -----------------------------------------------------------------------------
+// CMceCsServerITC::WriteL
+// -----------------------------------------------------------------------------
+//
+void CMceCsServerITC::WriteL (const RMessage2& aMessage,
+ const TMceMessageBufSizes aSizes) const
+ {
+ TPckgBuf<TMceMessageBufSizes> bufSizesPckg(aSizes);
+ WriteL (EMceItcArgBufSizes, aMessage, bufSizesPckg);
+ }
+
+// -----------------------------------------------------------------------------
+// CMceCsServerITC::ReadMCEIdsL
+// -----------------------------------------------------------------------------
+//
+TMceIds CMceCsServerITC::ReadMCEIdsL (const RMessage2& aMessage) const
+ {
+ TPckgBuf<TMceIds> mceIdsPckg;
+ aMessage.ReadL (EMceItcArgIds, mceIdsPckg);
+ return mceIdsPckg();
+ }
+
+// -----------------------------------------------------------------------------
+// CMceCsServerITC::ReadTUint32L
+// -----------------------------------------------------------------------------
+//
+TUint32 CMceCsServerITC::ReadTUint32L (const RMessage2& aMessage,
+ TMceItcArguments aItcArgIndex) const
+ {
+ TPckgBuf<TUint32> mceDataPckg;
+ aMessage.ReadL (aItcArgIndex, mceDataPckg);
+ return mceDataPckg();
+ }
+
+// -----------------------------------------------------------------------------
+// CMceCsServerITC::ReadIntL
+// -----------------------------------------------------------------------------
+//
+TInt CMceCsServerITC::ReadIntL(const RMessage2& aMessage,
+ TMceItcArguments aItcArgIndex) const
+ {
+
+ TInt integer = 0;
+ switch (static_cast<TInt>(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<TInt>(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<TInt>(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;
+ }