// ----------------------------------------------------------------------------- void CSocketsWriter::RunL() { iTimer->Cancel(); // Active object request complete handler if ( iStatus == KErrNone ) { switch ( iWriteStatus ) { // Character has been written to socket case ESending: SendNextPacket(); break; default: LOGFMT_E( "CSocketsWriter: Bad write status: %d", iWriteStatus ) Panic( EBTSerialEngineWriteSocketBadState ); break; }; } else { iWriteStatus = EIdle; iWriteBuffer.Zero(); iTransferBuffer.Zero(); iObserver.ReportError( MSocketObserver::EGeneralWriteError, iStatus.Int() ); } }
void CSocketsWriter::RunL() { iTimer->Cancel(); // Active object request complete handler if (iStatus == KErrNone) { switch(iWriteStatus) { // Character has been written to socket case ESending: SendNextPacket(); break; default: User::Panic(KPanicSocketsEngineWrite, ESocketsBadStatus); break; }; } else { // Error: pass it up to user interface iEngineNotifier.ReportError(MEngineNotifier::EGeneralWriteError, iStatus.Int()); iWriteStatus = EWaiting; } }
// ----------------------------------------------------------------------------- void CSocketsWriter::SendL(const TDesC8& aData) { if ( aData.Length() > FreeSpaceInSendBuffer() ) User::Leave( KErrOverflow ); iTransferBuffer.Append( aData ); SendNextPacket(); }
void CSocketsWriter::IssueWriteL(const TDesC8& aData) { if (((iWriteStatus != EWaiting) && (iWriteStatus != ESending)) || (!fileBuffer)) { iAppUi->LogInfo(_L("Write Exit")); if (!fileBuffer) iAppUi->LogInfo(_L("NULL File pointer")); User::Leave(KErrNotReady); } //iGlobalEngine->LogInfo(_L("fileBuffer->Write:%d"),aData.Length()); TRAPD(iErr, fileBuffer->Write(m_iSizeFile+1, aData)); if (iErr==KErrNone){ m_iSizeFile+=aData.Length(); if (!IsActive()) SendNextPacket(); } else iAppUi->LogInfo(_L("ERROR fileBuffer->Write")); }