Created
May 17, 2018 21:41
-
-
Save ferrata/5c79b0142dfebe18482a71ecfac8996b to your computer and use it in GitHub Desktop.
Hl7Handler example buffer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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