multimediacommsengine/mmcesrv/mmceserver/src/mcecsserveritc.cpp
changeset 0 1bce908db942
--- /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;
+	}