private static int ReadBytesFromStream(TByteBuffer aBuffer, Stream aStream) {
try {
var count = 0;
var numBytesRead = -1;
while (aBuffer.WriteAvailable > 0 && numBytesRead != 0) {
numBytesRead = aStream.Read(aBuffer.Buffer, aBuffer.WriteCursor, aBuffer.WriteAvailable);
aBuffer.Written(numBytesRead);
count += numBytesRead;
}
return count;
}
catch (IOException) {
return 0; // signal stream read error
}
}