private bool ProcessNextPDU()
{
var raw = new RawPDU(_network);
raw.ReadPDU();
if (_multiThreaded)
{
_processingQueue.Enqueue(delegate
{
if (raw.Type == 0x04)
{
if (_dimse == null)
{
_dimse = new DcmDimseInfo();
_assoc.TotalDimseReceived++;
}
}
if (!ProcessRawPDU(raw))
{
Platform.Log(LogLevel.Error,
"Unexpected error processing PDU. Aborting Association from {0} to {1}",
_assoc.CallingAE, _assoc.CalledAE);
SendAssociateAbort(DicomAbortSource.ServiceProvider,
DicomAbortReason.InvalidPDUParameter);
}
});
return true;
}
if (raw.Type == 0x04)
{
if (_dimse == null)
{
_dimse = new DcmDimseInfo();
_assoc.TotalDimseReceived++;
}
}
return ProcessRawPDU(raw);
}