adaptationlayer/modematadaptation/modematcontroller_exe/src/catmessage.cpp
changeset 9 8486d82aef45
parent 8 6295dc2169f3
--- a/adaptationlayer/modematadaptation/modematcontroller_exe/src/catmessage.cpp	Wed Apr 21 14:29:55 2010 +0300
+++ b/adaptationlayer/modematadaptation/modematcontroller_exe/src/catmessage.cpp	Tue Oct 19 13:16:20 2010 +0300
@@ -19,6 +19,12 @@
 #include "modemattrace.h"
 #include "cmodematsrv.h"
 #include "catmessage.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "catmessageTraces.h"
+#endif
+
+const TInt KReplyTypeOther( 3 );
 
 CAtMessage::CAtMessage( const TUint8 aMessageType,
     CModemAtSession* aSession,
@@ -28,12 +34,15 @@
     iRequest( aRequest ),
     iMessagePtr( NULL, 0)
     {
+    OstTraceExt3( TRACE_NORMAL, CATMESSAGE_CATMESSAGE, "CAtMessage::CAtMessage;this=%p;aRequest=%p;aRequest.Handle()=%x", this, &aRequest, (TUint)aRequest.Handle() );
     C_TRACE(( _L("CAtMessage::CAtMessage() this: 0x%x, aRequest 0x%x handle: 0x%x"), this, &aRequest, aRequest.Handle() ));
     TInt length = aRequest.GetDesLength( KATModemCommandArgumentIndex );
+    OstTraceExt2( TRACE_NORMAL, DUP2_CATMESSAGE_CATMESSAGE, "CAtMessage::CAtMessage;aMessageType=%d;length=%d", aMessageType, length );
     C_TRACE((_L("CAtMessage aMessageType: %d at command length: %d"), aMessageType, length ));
     iMessage = HBufC8::New( length );
     iMessagePtr.Set( iMessage->Des() );
     TInt err = aRequest.Read( KATModemCommandArgumentIndex, iMessagePtr );
+    OstTrace1( TRACE_NORMAL, DUP3_CATMESSAGE_CATMESSAGE, "CAtMessage::CAtMessage - aRequest.Read err:;err=%d", err );
     C_TRACE((_L("aRequest.Read err: %d"), err ));
     if( err != KErrNone )
         {
@@ -41,28 +50,33 @@
         }
     DUMP_MESSAGE( iMessagePtr );
     iRequest.Write( KATModemResponseArgumentIndex, KEmptyString );
+    OstTrace0( TRACE_NORMAL, DUP4_CATMESSAGE_CATMESSAGE, "CAtMessage::CAtMessage - done" );
     C_TRACE(( _L("CAtMessage done") ));
     }
 
 CAtMessage::~CAtMessage()
     {
+    OstTrace0( TRACE_NORMAL, DUP1_CATMESSAGE_CATMESSAGE, "CAtMessage::~CAtMessage" );
     C_TRACE (( _L("CAtMessage::~CAtMessage()") ));
     if( !iRequest.IsNull() )
-       {
-       C_TRACE (( _L("CAtMessage::~CAtMessage() !iRequest.IsNull this: 0x%x iRequest: 0x%x handle: 0x%x"), this, &iRequest, iRequest.Handle() ));
-       }
+        {
+        OstTraceExt3( TRACE_NORMAL, DUP5_CATMESSAGE_CATMESSAGE, "CAtMessage::~CAtMessage;this=%p;iRequest=%p;iRequest.Handle()=%x", this, &iRequest, (TUint)iRequest.Handle() );
+        C_TRACE (( _L("CAtMessage::~CAtMessage() !iRequest.IsNull this: 0x%x iRequest: 0x%x handle: 0x%x"), this, &iRequest, iRequest.Handle() ));
+        }
     if( iMessage )
     	{
-      delete iMessage;
+        delete iMessage;
     	iMessage = NULL;
     	}
     }
 
 void CAtMessage::CancelRequest()
     {
+    OstTrace0( TRACE_NORMAL, CATMESSAGE_CANCELREQUEST, "CAtMessage::CancelRequest" );
     C_TRACE (( _L("CAtMessage::CancelRequest()") ));
     if( !iRequest.IsNull() )
        {
+       OstTraceExt2( TRACE_NORMAL, DUP1_CATMESSAGE_CANCELREQUEST, "CAtMessage::CancelRequest - complete iRequest KErrCancel;iRequest=%p;iRequest.Handle()=%x", &iRequest, (TUint)iRequest.Handle() );
        C_TRACE (( _L("CAtMessage::CancelRequest complete iRequest KErrCancel iRequest: 0x%x handle 0x%x"), &iRequest, iRequest.Handle() ));
        iRequest.Complete( KErrCancel );
        }
@@ -70,38 +84,61 @@
 
 CModemAtSession* CAtMessage::GetSession() 
     {
+    OstTrace1( TRACE_NORMAL, CATMESSAGE_GETSESSION, "CAtMessage::GetSession;iSession=%x", iSession );
     C_TRACE (( _L("CAtMessage::GetSession() 0x%x"), &iSession ));
     return iSession;
     }
 
-TPtr8 CAtMessage::GetBuffer() 
+TPtr8& CAtMessage::GetBuffer() 
     {
+    OstTrace0( TRACE_NORMAL, CATMESSAGE_GETBUFFER, "CAtMessage::GetBuffer" );
     C_TRACE (( _L("CAtMessage::GetBuffer()")));
     return iMessagePtr;
     }
 
 TUint8 CAtMessage::GetMessageType() 
     {
+    OstTrace1( TRACE_NORMAL, CATMESSAGE_GETMESSAGETYPE, "CAtMessage::GetMessageType;iMessageType=%u", iMessageType );
     C_TRACE (( _L("CAtMessage::GetMessageType()"), iMessageType ));
     return iMessageType;
     }
 
-void CAtMessage::ReceiveATResponse( const TDesC8& aResponse, TBool aComplete ) 
+void CAtMessage::ReceiveATResponse( const TDesC8& aResponse, TBool aComplete, TInt aCompleteCode ) 
     {
+    //OstTraceExt3( TRACE_NORMAL, CATMESSAGE_RECEIVEATRESPONSE, "CAtMessage::ReceiveATResponse;aResponse=%p;aComplete=%d;aCompleteCode=%d", &aResponse, (TUint)aComplete, aCompleteCode );
+    OstTrace1( TRACE_NORMAL, DUP1_CATMESSAGE_RECEIVEATRESPONSE, "CAtMessage::ReceiveATResponse - ;iMessageType=%d", iMessageType );
     C_TRACE (( _L("CAtMessage::ReceiveATResponse( aResponse 0x%x, aComplete %d )"), &aResponse, (TInt)aComplete ));
-    C_TRACE (( _L("CAtMessage::ReceiveATResponse iMessageType: %d"), iMessageType ));
+    C_TRACE (( _L("CAtMessage::ReceiveATResponse iMessageType: %d, aCompleteCode: %d"), iMessageType, aCompleteCode ));
     if( !iRequest.IsNull() )
         {
+        OstTraceExt2( TRACE_NORMAL, DUP2_CATMESSAGE_RECEIVEATRESPONSE, "CAtMessage::ReceiveATResponse - Writing to iRequest:;iRequest=%p;iRequest.Handle()=%d", &iRequest, (TUint)iRequest.Handle() );
         C_TRACE (( _L("CAtMessage::ReceiveATResponse Writing to iRequest: 0x%x handle 0x%x"), &iRequest, iRequest.Handle() ));
-        TInt err = iRequest.Write( KATModemResponseArgumentIndex, aResponse, iRequest.GetDesLength( KATModemResponseArgumentIndex ));
+        TInt length = iRequest.GetDesMaxLength( KATModemResponseArgumentIndex );
+        HBufC8* intermediateBuffer = HBufC8::New( length );
+        TPtr8 ptr = intermediateBuffer->Des();
+        TInt readErr = iRequest.Read( KATModemResponseArgumentIndex, ptr );
+        TRACE_ASSERT( readErr == KErrNone );
+        if( ptr.Length() > 0 )
+            {
+            OstTrace1( TRACE_NORMAL, DUP3_CATMESSAGE_RECEIVEATRESPONSE, "CAtMessage::ReceiveATResponse - Complete with EReplyTypeOther :;ptr.Length()=%d", ptr.Length() );
+            C_TRACE(( _T("Complete with EReplyTypeOther :%d"), ptr.Length() ));
+            aCompleteCode = KReplyTypeOther;
+            }
+        ptr.Append( aResponse );
+        DUMP_MESSAGE( ptr );
+        TInt err = iRequest.Write( KATModemResponseArgumentIndex, ptr );
         TRACE_ASSERT( err == KErrNone );
+        delete intermediateBuffer;
+        intermediateBuffer = NULL;
         if( aComplete )
             {
+            OstTraceExt4( TRACE_NORMAL, DUP4_CATMESSAGE_RECEIVEATRESPONSE, "CAtMessage::ReceiveATResponse -;completion code=%d;this=%p;iRequest=%p;iRequest.Handle()=%d", err, this, &iRequest, (TUint)iRequest.Handle() );
             C_TRACE (( _L("CAtMessage::ReceiveATResponse completing (%d) this: 0x%x iRequest: 0x%x handle: 0x%x"), err, this, &iRequest, iRequest.Handle() ));
-            iRequest.Complete( err );
+            iRequest.Complete( aCompleteCode );
             }
         else
             {
+            OstTrace1( TRACE_NORMAL, DUP5_CATMESSAGE_RECEIVEATRESPONSE, "CAtMessage::ReceiveATResponse - not completing intermediate data yet;err=%d", err );
             C_TRACE (( _L("CAtMessage::ReceiveATResponse not completing intermediate data yet(%d)"), err ));
             }
         }