Eigener Buffer für Producer-Consumer Lösung.
Noch unvollständig
This commit is contained in:
@@ -23,16 +23,16 @@ namespace WorldOfPeacecraft
|
||||
public const string MessPlayers = "players";
|
||||
public const string MessDragon = "dragon";
|
||||
public const string MessMapcell = "cell";
|
||||
private Queue<string> Buffer = new Queue<string> ();
|
||||
private AutoResetEvent BufferFilledEvent = new AutoResetEvent (false);
|
||||
private Buffer MonsterBuffer;
|
||||
private Thread ParserThread;
|
||||
private LinkedList<string> Message;
|
||||
private Regex LastLineRegex;
|
||||
private Backend backend;
|
||||
private Player DummyPlayer;
|
||||
|
||||
public Parser ()
|
||||
public Parser (Buffer b)
|
||||
{
|
||||
MonsterBuffer = b;
|
||||
ParserThread = new Thread (new ThreadStart (this.RunParser));
|
||||
ParserThread.Start();
|
||||
Message = new LinkedList<string> ();
|
||||
@@ -40,11 +40,11 @@ namespace WorldOfPeacecraft
|
||||
}
|
||||
|
||||
private void RunParser ()
|
||||
{
|
||||
{/*
|
||||
while (true) {
|
||||
bool waitRequired = false;
|
||||
lock (Buffer) {
|
||||
if (Buffer.Count == 0) {
|
||||
lock (MonsterBuffer) {
|
||||
if (MonsterBuffer.Count == 0) {
|
||||
waitRequired = true;
|
||||
BufferFilledEvent.Reset ();
|
||||
}
|
||||
@@ -58,9 +58,9 @@ namespace WorldOfPeacecraft
|
||||
if (IsCompletePackage ()) {
|
||||
Parse ();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
public Player getDummyPlayer()
|
||||
{
|
||||
return DummyPlayer;
|
||||
@@ -421,13 +421,7 @@ namespace WorldOfPeacecraft
|
||||
ParserThread.Abort ();
|
||||
}
|
||||
|
||||
public void AddToBuffer (string s)
|
||||
{
|
||||
lock (Buffer) {
|
||||
Buffer.Enqueue (s);
|
||||
BufferFilledEvent.Set ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private class Block
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user