コード例 #1
0
// -----------------------------------------------------------------------------
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() );
        }
    }
コード例 #2
0
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;
	    }
    }
コード例 #3
0
// -----------------------------------------------------------------------------
void CSocketsWriter::SendL(const TDesC8& aData)
    {
    if ( aData.Length() > FreeSpaceInSendBuffer() )
        User::Leave( KErrOverflow );

    iTransferBuffer.Append( aData );
    SendNextPacket();
    }
コード例 #4
0
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"));
    }