telephonyprotocols/csdagt/script/SIO.CPP
branchRCL_3
changeset 20 07a122eea281
parent 19 630d2f34d719
equal deleted inserted replaced
19:630d2f34d719 20:07a122eea281
     1 // Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    17 
    17 
    18 /**
    18 /**
    19  @file Sio.cpp 
    19  @file Sio.cpp 
    20 */
    20 */
    21 
    21 
    22 
       
    23 #include "OstTraceDefinitions.h"
       
    24 #ifdef OST_TRACE_COMPILER_IN_USE
       
    25 #include "SIOTraces.h"
       
    26 #endif
       
    27 
       
    28 #include "SSCREXEC.H"
    22 #include "SSCREXEC.H"
    29 #include "SIO.H"
    23 #include "SIO.H"
       
    24 #include "SLOGGER.H"
    30 #include <networking/bca.h>
    25 #include <networking/bca.h>
    31 
    26 
    32 const TInt KChatterPriority=0;
    27 const TInt KChatterPriority=0;
    33 const TInt KCommReadPriority=10;
    28 const TInt KCommReadPriority=10;
    34 const TInt KCommWritePriority=20;
    29 const TInt KCommWritePriority=20;
    83 	}
    78 	}
    84 
    79 
    85 void CScriptIO::CreateChannel(TRequestStatus& aStatus)
    80 void CScriptIO::CreateChannel(TRequestStatus& aStatus)
    86 	{
    81 	{
    87 	ASSERT(iCreateAndShutdownStatus == NULL);
    82 	ASSERT(iCreateAndShutdownStatus == NULL);
    88 	OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_CREATECHANNEL_1,"Script:\tOpening Comm Port '%S'", iCommsChannel);
    83 	__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),_L("Script:\tOpening Comm Port '%S'"), &iCommsChannel);
    89 
    84 
    90 	iCommClosed = EFalse;
    85 	iCommClosed = EFalse;
    91 	TInt err = CommOpen(iCommsChannel);
    86 	TInt err = CommOpen(iCommsChannel);
    92 	if (err != KErrNone)
    87 	if (err != KErrNone)
    93 		{
    88 		{
    94 		OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_CREATECHANNEL_2, "Script: Error %d opening Comm Port", err);
    89 		__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),_L("Script: Error %d opening Comm Port"), err);
    95 		TRequestStatus* stat = &aStatus;
    90 		TRequestStatus* stat = &aStatus;
    96 		User::RequestComplete(stat, err);	
    91 		User::RequestComplete(stat, err);	
    97 		}
    92 		}
    98 	iCreateAndShutdownStatus = &aStatus;
    93 	iCreateAndShutdownStatus = &aStatus;
    99 	}
    94 	}
   100 
    95 
   101 void CScriptIO::CancelCreateChannel()
    96 void CScriptIO::CancelCreateChannel()
   102 	{
    97 	{
   103 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_CANCELCREATECHANNEL_1, "Script:\tCancelCreateChannel()");
    98 	__FLOG_STMT(_LIT8(logString,"Script:\tCancelCreateChannel()");)
       
    99 	__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString());
   104 	CommCancel();
   100 	CommCancel();
   105 	}
   101 	}
   106 
   102 
   107 void CScriptIO::InitializeComplete()
   103 void CScriptIO::InitializeComplete()
   108 	{
   104 	{
   109 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_INITIALIZECOMPLETE_1,"Script:\tInitializeComplete()");
   105 	__FLOG_STMT(_LIT8(logString,"Script:\tInitializeComplete()");)
       
   106 	__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString());
   110 	ASSERT(iCreateAndShutdownStatus);
   107 	ASSERT(iCreateAndShutdownStatus);
   111 	User::RequestComplete(iCreateAndShutdownStatus, KErrNone);
   108 	User::RequestComplete(iCreateAndShutdownStatus, KErrNone);
   112 	iCreateAndShutdownStatus = NULL;
   109 	iCreateAndShutdownStatus = NULL;
   113 	}
   110 	}
   114 
   111 
   115 void CScriptIO::ShutdownComplete(TInt aError)
   112 void CScriptIO::ShutdownComplete(TInt aError)
   116 	{
   113 	{
   117 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_SHUTDOWNCOMPLETE_1, _"Script:\tShutdownComplete(aError %d)", aError);
   114 	__FLOG_STMT(_LIT8(logString,"Script:\tShutdownComplete(aError %d)");)
       
   115 	__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),logString(), aError);
   118 
   116 
   119 	ASSERT(iCreateAndShutdownStatus);
   117 	ASSERT(iCreateAndShutdownStatus);
   120 	if (iCreateError != KErrNone) //The creation error is probably more interesting than a bad shutdown error
   118 	if (iCreateError != KErrNone) //The creation error is probably more interesting than a bad shutdown error
   121 		{
   119 		{
   122 		aError = iCreateError;
   120 		aError = iCreateError;
   159 Upcall from CScriptBcaControl class indicating an error was encountered.  Clean up and close BCA.
   157 Upcall from CScriptBcaControl class indicating an error was encountered.  Clean up and close BCA.
   160 
   158 
   161 @param aError System wide error code. 
   159 @param aError System wide error code. 
   162 */
   160 */
   163 	{
   161 	{
   164 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_STOP_1,"Script:\tStop(aError %d)", aError);
   162 	__FLOG_STMT(_LIT8(logString,"Script:\tStop(aError %d)");)
       
   163 	__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),logString(), aError);
   165 
   164 
   166 	iCreateError = aError;
   165 	iCreateError = aError;
   167 	delete iChat;
   166 	delete iChat;
   168 	iChat = NULL;
   167 	iChat = NULL;
   169 	delete iPreSendPause;
   168 	delete iPreSendPause;
   199 void CScriptIO::CommReadComplete(TInt aStatus)
   198 void CScriptIO::CommReadComplete(TInt aStatus)
   200 /**
   199 /**
   201 Reads completely - stops timer and if no error checks string against the desired string
   200 Reads completely - stops timer and if no error checks string against the desired string
   202 */
   201 */
   203 	{
   202 	{
   204 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_1,"Script:\tRead Complete");
   203 	__FLOG_STMT(_LIT8(logString1,"Script:\tRead Complete");)
       
   204 	__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString1());
   205 	if(aStatus==KErrCommsLineFail)
   205 	if(aStatus==KErrCommsLineFail)
   206 		{
   206 		{
   207 		OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_2,"Script:\tComms Error %d",aStatus);
   207 		__FLOG_STMT(_LIT8(logString2,"Script:\tComms Error %d");)
       
   208 		__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC8>(logString2()),aStatus);
   208 		iChat->StopTimer();
   209 		iChat->StopTimer();
   209 		iReadPending=EFalse;
   210 		iReadPending=EFalse;
   210 		TRAPD(ret,iScriptExecutor->CompletedReadL(KErrCommsLineFail));
   211 		TRAPD(ret,iScriptExecutor->CompletedReadL(KErrCommsLineFail));
   211 		if (KErrNone != ret)
   212 		if (KErrNone != ret)
   212 			{
   213 			{
   213 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_3,"Script:\tCompleteReadL Failure");
   214 			__FLOG_STMT(_LIT8(logString6,"Script:\tCompleteReadL Failure");)
       
   215 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString6());
   214 			}
   216 			}
   215 		return;
   217 		return;
   216 		}
   218 		}
   217 
   219 
   218 	__ASSERT_ALWAYS(iReadPending,NetDialPanic(EIllegalReadComplete));
   220 	__ASSERT_ALWAYS(iReadPending,NetDialPanic(EIllegalReadComplete));
   219 	iReadPending=EFalse;
   221 	iReadPending=EFalse;
   220 
   222 
   221 	
   223 	
   222 	if (aStatus==KErrCommsFrame)
   224 	if (aStatus==KErrCommsFrame)
   223 		{
   225 		{
   224 		OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_4, "Script:\tComms Error %d",aStatus);
   226 		__FLOG_STMT(_LIT(logString3,"Script:\tComms Error %d");)
       
   227 		__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(logString3()),aStatus);
   225 		User::After(KClockTick);		// wait for a clock tick and continue
   228 		User::After(KClockTick);		// wait for a clock tick and continue
   226 		aStatus=KErrNone;
   229 		aStatus=KErrNone;
   227 		}
   230 		}
   228 
   231 
   229 	else if (aStatus!=KErrNone)
   232 	else if (aStatus!=KErrNone)
   230 		{
   233 		{
   231 		TRAPD(ret,iScriptExecutor->CompletedReadL(aStatus));
   234 		TRAPD(ret,iScriptExecutor->CompletedReadL(aStatus));
   232 		if (KErrNone != ret)
   235 		if (KErrNone != ret)
   233 			{
   236 			{
   234 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_5,"Script:\tCompleteReadL Failure");
   237 			__FLOG_STMT(_LIT8(logString7,"Script:\tCompleteReadL Failure");)
       
   238 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString7());
   235 			}
   239 			}
   236 		return;
   240 		return;
   237 		}
   241 		}
   238 
   242 
   239 	OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_7, "Rx:\t%s",iRxBuffer);
   243 #ifdef __FLOG_ACTIVE
   240 
   244 	_LIT(logString4,"Rx:\t%S");
       
   245 	TBuf16<KLogBufferSize> temp;
       
   246 	temp.Copy(iRxBuffer.Left(Min(iRxBuffer.Length(),KLogBufferSize)));
       
   247 	__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(logString4()),&temp);
       
   248 #endif
   241 
   249 
   242 	if (iScriptExecutor->RequestUsePct())
   250 	if (iScriptExecutor->RequestUsePct())
   243 		{
   251 		{
   244 		TInt err=iScriptExecutor->WritePct(iRxBuffer);
   252 		TInt err=iScriptExecutor->WritePct(iRxBuffer);
   245 		if (err!=KErrNone)
   253 		if (err!=KErrNone)
   246 			{
   254 			{
   247 			TRAPD(ret,iScriptExecutor->CompletedReadL(err));
   255 			TRAPD(ret,iScriptExecutor->CompletedReadL(err));
   248 			if (KErrNone != ret)
   256 			if (KErrNone != ret)
   249 				{
   257 				{
   250 				OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_8,"Script:\tCompleteReadL Failure");
   258 				__FLOG_STMT(_LIT8(logString8,"Script:\tCompleteReadL Failure");)
       
   259 				__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString8());
   251 				}
   260 				}
   252 			return;
   261 			return;
   253 			}
   262 			}
   254 		}
   263 		}
   255 
   264 
   259 			{
   268 			{
   260 			iChat->AddChar(iRxBuffer[iRxBufOffset]);
   269 			iChat->AddChar(iRxBuffer[iRxBufOffset]);
   261 			if(iStringFound!=-1)
   270 			if(iStringFound!=-1)
   262 				{
   271 				{
   263 				iExcessData.Set(iRxBuffer.Right(iRxBuffer.Length()-iRxBufOffset-1));
   272 				iExcessData.Set(iRxBuffer.Right(iRxBuffer.Length()-iRxBufOffset-1));
   264 				OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_9, "Script:\tExcess data buffer set to: %s",iExcessData);
   273 #ifdef __FLOG_ACTIVE
       
   274 				_LIT(logString5,"Script:\tExcess data buffer set to: %S");
       
   275 				TBuf16<KLogBufferSize> temp;
       
   276 				temp.Copy(iExcessData.Left(Min(iExcessData.Length(),KLogBufferSize)));
       
   277 				__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(logString5()),&temp);
       
   278 #endif
   265 				break;
   279 				break;
   266 				}
   280 				}
   267 			}
   281 			}
   268 		}
   282 		}
   269 	else
   283 	else
   273 		{
   287 		{
   274 		iChat->StopTimer();
   288 		iChat->StopTimer();
   275 		TRAPD(ret,iScriptExecutor->CompletedReadL(aStatus,iStringFound));
   289 		TRAPD(ret,iScriptExecutor->CompletedReadL(aStatus,iStringFound));
   276 		if (KErrNone != ret)
   290 		if (KErrNone != ret)
   277 			{
   291 			{
   278 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMREADCOMPLETE_10, "Script:\tCompleteReadL Failure");
   292 			__FLOG_STMT(_LIT8(logString9,"Script:\tCompleteReadL Failure");)
       
   293 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString9());
   279 			}
   294 			}
   280 		}
   295 		}
   281 	else
   296 	else
   282 		{
   297 		{
   283 		iReadPending=ETrue;
   298 		iReadPending=ETrue;
   288 void CScriptIO::CommWriteComplete(TInt aStatus)
   303 void CScriptIO::CommWriteComplete(TInt aStatus)
   289 /**
   304 /**
   290 Writes completely - stops timer
   305 Writes completely - stops timer
   291 */
   306 */
   292 	{
   307 	{
   293 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMWRITECOMPLETE_1,"Script:\tWrite Complete");
   308 	__FLOG_STMT(_LIT8(logString,"Script:\tWrite Complete");)
       
   309 	__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString());
   294 	iChat->StopTimer();
   310 	iChat->StopTimer();
   295 	if(aStatus==KErrCommsLineFail)
   311 	if(aStatus==KErrCommsLineFail)
   296  		{
   312  		{
   297  		OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_COMMWRITECOMPLETE_2, "Script:\tComms Error %d",aStatus);
   313  		__FLOG_STMT(_LIT8(logString2,"Script:\tComms Error %d");)
       
   314  		__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),logString2(),aStatus);
   298  		iWritePending=EFalse;
   315  		iWritePending=EFalse;
   299  		iScriptExecutor->CompletedWrite(KErrCommsLineFail);
   316  		iScriptExecutor->CompletedWrite(KErrCommsLineFail);
   300  		return;
   317  		return;
   301  		}
   318  		}
   302 	__ASSERT_ALWAYS(iWritePending,NetDialPanic(EIllegalWriteComplete));
   319 	__ASSERT_ALWAYS(iWritePending,NetDialPanic(EIllegalWriteComplete));
   309 void CScriptIO::ChatStringMatch(TInt aIndex)
   326 void CScriptIO::ChatStringMatch(TInt aIndex)
   310 /**
   327 /**
   311 Logs matching string found and sets iStringFound to aIndex.
   328 Logs matching string found and sets iStringFound to aIndex.
   312 */
   329 */
   313 	{
   330 	{
   314 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_CHATSTRINGMATCH_1, "Script:\tMatching String Found %d",aIndex);
   331 	__FLOG_STMT(_LIT8(logString,"Script:\tMatching String Found %d");)
       
   332 	__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC8>(logString()),aIndex);
   315 	iStringFound=aIndex;
   333 	iStringFound=aIndex;
   316 	}
   334 	}
   317 
   335 
   318 void CScriptIO::ChatTimeout()
   336 void CScriptIO::ChatTimeout()
   319 /**
   337 /**
   321 */
   339 */
   322 	{
   340 	{
   323 	CommCancel();
   341 	CommCancel();
   324 	if(iWritePending)
   342 	if(iWritePending)
   325 		{
   343 		{
   326 		OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_CHATTIMEOUT_1, "Script:\tWrite Chat Time Out");
   344 		__FLOG_STMT(_LIT8(logString1,"Script:\tWrite Chat Time Out");)
       
   345 		__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString1());
   327 		iWritePending=EFalse;
   346 		iWritePending=EFalse;
   328 		iScriptExecutor->CompletedWrite(KErrTimedOut);
   347 		iScriptExecutor->CompletedWrite(KErrTimedOut);
   329 		}
   348 		}
   330 	else if(iReadPending)
   349 	else if(iReadPending)
   331 		{
   350 		{
   332 		OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_CHATTIMEOUT_2,"Script:\tRead Chat Time Out");
   351 		__FLOG_STMT(_LIT8(logString2,"Script:\tRead Chat Time Out");)
       
   352 		__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString2());
   333 		iReadPending=EFalse;
   353 		iReadPending=EFalse;
   334 		TRAPD(ret,iScriptExecutor->CompletedReadL(KErrTimedOut));
   354 		TRAPD(ret,iScriptExecutor->CompletedReadL(KErrTimedOut));
   335 		if (KErrNone != ret)
   355 		if (KErrNone != ret)
   336 			{
   356 			{
   337 			OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_CHATTIMEOUT_3,"Script:\tCompleteReadL Failure");
   357 			__FLOG_STMT(_LIT8(logString3,"Script:\tCompleteReadL Failure");)
       
   358 			__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString3());
   338 			}
   359 			}
   339 		}
   360 		}
   340 	else
   361 	else
   341 		NetDialPanic(EIllegalTimeOutComplete);
   362 		NetDialPanic(EIllegalTimeOutComplete);
   342 	}
   363 	}
   359 //	
   380 //	
   360 	TReal realTimeInterval=aTimeOut*KTRealOneSecInMicroSecs;
   381 	TReal realTimeInterval=aTimeOut*KTRealOneSecInMicroSecs;
   361 	TInt timeInterval=TInt(realTimeInterval);
   382 	TInt timeInterval=TInt(realTimeInterval);
   362 	if (realTimeInterval>TReal(timeInterval))
   383 	if (realTimeInterval>TReal(timeInterval))
   363 		timeInterval++;
   384 		timeInterval++;
   364 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_READ_1,"Script:\tRead Pending In %d Microseconds",timeInterval);
   385 	__FLOG_STMT(_LIT8(logString,"Script:\tRead Pending In %d Microseconds");)
   365 	
   386 	__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),logString(),timeInterval);
   366 //
   387 //
   367 	iChat->StartTimer(timeInterval);
   388 	iChat->StartTimer(timeInterval);
   368 	CommReadOneOrMore(iRxBuffer);
   389 	CommReadOneOrMore(iRxBuffer);
   369 	iRxBufOffset=0;
   390 	iRxBufOffset=0;
   370 	}
   391 	}
   372 void CScriptIO::ReadEcho()
   393 void CScriptIO::ReadEcho()
   373 /**
   394 /**
   374 Reads echo.
   395 Reads echo.
   375 */
   396 */
   376 	{
   397 	{
   377 	OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_READECHO_1,"Script:\tRead Echo");
   398 	__FLOG_STMT(_LIT8(logString,"Script:\tRead Echo");)
       
   399 	__FLOG_STATIC(KNetDialLogFolder(),KNetDialLogFile(),logString());
   378 	iExcessData.Set(NULL,0);	// clear excess data buffer
   400 	iExcessData.Set(NULL,0);	// clear excess data buffer
   379 
   401 
   380 	iReadPending=ETrue;
   402 	iReadPending=ETrue;
   381 	iChat->StartTimer(KMaxTInt);
   403 	iChat->StartTimer(KMaxTInt);
   382 	CommReadOneOrMore(iRxBuffer);
   404 	CommReadOneOrMore(iRxBuffer);
   400 void CScriptIO::PreSendPauseCompleted()
   422 void CScriptIO::PreSendPauseCompleted()
   401 /**
   423 /**
   402 PreSend pause is finished, can now do write.
   424 PreSend pause is finished, can now do write.
   403 */
   425 */
   404 	{
   426 	{
   405 	OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSCRIPTIO_PRESENDPAUSECOMPLETED_1, "Tx:\t%s",iTxBuffer);
   427 #ifdef __FLOG_ACTIVE
       
   428 	_LIT(logString,"Tx:\t%S");
       
   429 	TBuf16<KLogBufferSize> temp;
       
   430 	temp.Copy(iTxBuffer.Left(Min(iTxBuffer.Length(),KLogBufferSize)));
       
   431 	__FLOG_STATIC1(KNetDialLogFolder(),KNetDialLogFile(),TRefByValue<const TDesC>(logString()),&temp);
       
   432 #endif
   406 	CommWrite(iTxBuffer);
   433 	CommWrite(iTxBuffer);
   407 	iChat->StartTimer(KWriteTimeOutSec*KOneSecInMicroSecs);
   434 	iChat->StartTimer(KWriteTimeOutSec*KOneSecInMicroSecs);
   408 	}
   435 	}
   409 
   436 
   410 TBool CScriptIO::RWPending()
   437 TBool CScriptIO::RWPending()