public void EmptySync(NpgsqlConnector context)
{
Stream stm = context.Stream;
NpgsqlSync.Default.WriteToStream(stm);
stm.Flush();
Queue<int> buffer = new Queue<int>();
//byte[] compareBuffer = new byte[6];
int[] messageSought = new int[] {'Z', 0, 0, 0, 5};
int newByte;
for (;;)
{
switch (newByte = stm.ReadByte())
{
case -1:
throw new EndOfStreamException();
case 'E':
case 'I':
case 'T':
if (buffer.Count > 4)
{
bool match = true;
int i = 0;
foreach (byte cmp in buffer)
{
if (cmp != messageSought[i++])
{
match = false;
break;
}
}
if (match)
{
return;
}
}
break;
default:
buffer.Enqueue(newByte);
if (buffer.Count > 5)
{
buffer.Dequeue();
}
break;
}
}
}