protected int SaveBufferToFile(FileStream outputFile, int bytesLeft) { int bytesToWrite = Math.Min(bytesLeft, m_xmlStream.getBytesInBuffer() - m_xmlStream.getBufferOffset()); outputFile.Write(m_xmlStream.getBuffer(), m_xmlStream.getBufferOffset(), bytesToWrite); m_xmlStream.addProcessedBytes(bytesToWrite);// m_bufferOffset += bytesToWrite; return(bytesToWrite); }
protected int SaveBufferToFile(FileStream outputFile, int bytesLeft, bool bFileOpen = true) { int bytesToWrite = Math.Min(bytesLeft, m_xmlStream.getBytesInBuffer() - m_xmlStream.getBufferOffset()); //for convenience, this function may be called even if the file wasn't correctly opened if (bFileOpen) { outputFile.Write(m_xmlStream.getBuffer(), m_xmlStream.getBufferOffset(), bytesToWrite); } m_xmlStream.addProcessedBytes(bytesToWrite);// m_bufferOffset += bytesToWrite; return(bytesToWrite); }
public void checkCancellationRequests() { int bytes = 0; try { if (!m_netStream.DataAvailable) { return; } XMLStream inputXMLStream = new XMLStream(); bytes = m_netStream.Read(inputXMLStream.getBuffer(), inputXMLStream.getBufferOffset() , inputXMLStream.getBufferSize() - inputXMLStream.getBufferOffset()); inputXMLStream.addBytesRead(bytes); //we let the xmlstream object know that some bytes have been read in its buffer string xmlItem = inputXMLStream.peekNextXMLItem(); if (xmlItem != "") { string xmlItemContent = inputXMLStream.getLastXMLItemContent(); if (xmlItemContent == CJobDispatcher.m_quitMessage) { inputXMLStream.addProcessedBytes(bytes); inputXMLStream.discardProcessedData(); logMessage("Stopping job execution"); m_cancelTokenSource.Cancel(); } } } catch (IOException) { logMessage("IOException in readFromShepherd()"); } catch (OperationCanceledException) { logMessage("Thread finished gracefully"); } catch (ObjectDisposedException) { logMessage("Network stream closed: async read finished"); } catch (Exception ex) { logMessage("Unhandled exception in readFromShepherd"); logMessage(ex.ToString()); } }
public void checkCancellationRequests() { int bytes = 0; try { if (!m_netStream.DataAvailable) return; XMLStream inputXMLStream = new XMLStream(); bytes = m_netStream.Read(inputXMLStream.getBuffer(), inputXMLStream.getBufferOffset() , inputXMLStream.getBufferSize() - inputXMLStream.getBufferOffset()); inputXMLStream.addBytesRead(bytes); //we let the xmlstream object know that some bytes have been read in its buffer string xmlItem = inputXMLStream.peekNextXMLItem(); if (xmlItem != "") { string xmlItemContent = inputXMLStream.getLastXMLItemContent(); if (xmlItemContent == CJobDispatcher.m_quitMessage) { inputXMLStream.addProcessedBytes(bytes); inputXMLStream.discardProcessedData(); logMessage("Stopping job execution"); m_cancelTokenSource.Cancel(); } } } catch (IOException) { logMessage("IOException in readFromShepherd()"); } catch (OperationCanceledException) { logMessage("Thread finished gracefully"); } catch (ObjectDisposedException) { logMessage("Network stream closed: async read finished"); } catch (Exception ex) { logMessage("Unhandled exception in readFromShepherd"); logMessage(ex.ToString()); } }