public void EndReadFileRequest(IAsyncResult result, out uint count, out int position, out bool end_of_file, out byte[] file_buffer, out int file_buffer_offset, out Exception ex)
{
BacnetAsyncResult res = (BacnetAsyncResult)result;
ex = res.Error;
if (ex == null && !res.WaitForDone(m_timeout))
ex = new Exception("Wait Timeout");
if (ex == null)
{
//decode
bool is_stream;
if (Services.DecodeAtomicReadFileAcknowledge(res.Result, 0, res.Result.Length, out end_of_file, out is_stream, out position, out count, out file_buffer, out file_buffer_offset) < 0)
ex = new Exception("Decode");
}
else
{
count = 0;
end_of_file = true;
position = -1;
file_buffer_offset = -1;
file_buffer = new byte[0];
}
res.Dispose();
}