private static RdcBufferPointer GetInputBuffer(Stream source, int inputBufferSize, RdcBufferPointer inputBuffer,
ref bool eof)
{
if (eof)
{
inputBuffer.Size = 0;
inputBuffer.Used = 0;
}
else
{
var bytesRead = 0;
try
{
bytesRead = RdcBufferTools.IntPtrCopy(source, inputBuffer.Data, inputBufferSize);
}
catch (Exception ex)
{
throw new RdcException("Failed to read from the source stream.", ex);
}
inputBuffer.Size = (uint) bytesRead;
inputBuffer.Used = 0;
if (bytesRead < inputBufferSize)
{
eof = true;
}
}
return inputBuffer;
}