Skip to content

Instantly share code, notes, and snippets.

@ferrata
Created May 17, 2018 21:41
Show Gist options
  • Save ferrata/5c79b0142dfebe18482a71ecfac8996b to your computer and use it in GitHub Desktop.
Save ferrata/5c79b0142dfebe18482a71ecfac8996b to your computer and use it in GitHub Desktop.
Hl7Handler example buffer
private static IMessage readMessage(StreamReader reader, Encoding encoding, int bufferSize)
{
var messageData = new StringBuilder();
if (!readStartMarker(reader))
return null; //throw ??
var buffer = new char[bufferSize];
while (true)
{
var bytesRec = reader.Read(buffer, 0, bufferSize);
var block = new string(buffer, 0, bytesRec);
var endMarker = block.IndexOf(encoding.GetString(Markers.end, 0, Markers.end.Length), StringComparison.Ordinal);
if (endMarker > 0)
block = block.Substring(0, endMarker);
messageData.Append(block);
if (endMarker > 0)
break;
}
var parser = new PipeParser();
return parser.Parse(messageData.ToString());
}
private static bool readStartMarker(StreamReader reader)
{
var reveived = reader.Peek();
if (reveived != Markers.start[0])
return false;
var buffer = new char[1];
reader.Read(buffer, 0, 1);
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment