Console client: Some changes for better reuse of components.
This commit is contained in:
@@ -0,0 +1,55 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
|
namespace pokerth_lib
|
||||||
|
{
|
||||||
|
public abstract class BasicThread
|
||||||
|
{
|
||||||
|
public BasicThread()
|
||||||
|
{
|
||||||
|
m_thread = new Thread(ThreadProc);
|
||||||
|
m_terminateFlag = false;
|
||||||
|
m_terminateFlagMutex = new System.Object();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Run()
|
||||||
|
{
|
||||||
|
m_thread.Start(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void ThreadProc(object obj)
|
||||||
|
{
|
||||||
|
BasicThread me = (BasicThread)obj;
|
||||||
|
me.Main();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract void Main();
|
||||||
|
|
||||||
|
public void WaitTermination()
|
||||||
|
{
|
||||||
|
m_thread.Join();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetTerminateFlag()
|
||||||
|
{
|
||||||
|
lock (m_terminateFlagMutex)
|
||||||
|
{
|
||||||
|
m_terminateFlag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool IsTerminateFlagSet()
|
||||||
|
{
|
||||||
|
lock (m_terminateFlagMutex)
|
||||||
|
{
|
||||||
|
return m_terminateFlag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Thread m_thread;
|
||||||
|
private bool m_terminateFlag;
|
||||||
|
private Object m_terminateFlagMutex;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,28 +20,20 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
namespace pokerth_lib
|
namespace pokerth_lib
|
||||||
{
|
{
|
||||||
abstract class NetThread
|
abstract class NetThread : BasicThread
|
||||||
{
|
{
|
||||||
public NetThread(NetworkStream stream)
|
public NetThread(NetworkStream stream)
|
||||||
|
: base()
|
||||||
{
|
{
|
||||||
m_thread = new Thread(ThreadProc);
|
|
||||||
m_terminateFlag = false;
|
|
||||||
m_terminateFlagMutex = new System.Object();
|
|
||||||
m_netStream = stream;
|
m_netStream = stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Run()
|
|
||||||
{
|
|
||||||
m_thread.Start(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected NetworkStream NetStream
|
protected NetworkStream NetStream
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -50,38 +42,6 @@ namespace pokerth_lib
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static void ThreadProc(object obj)
|
|
||||||
{
|
|
||||||
NetThread me = (NetThread)obj;
|
|
||||||
me.Start();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract void Start();
|
|
||||||
|
|
||||||
public void WaitTermination()
|
|
||||||
{
|
|
||||||
m_thread.Join();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetTerminateFlag()
|
|
||||||
{
|
|
||||||
lock (m_terminateFlagMutex)
|
|
||||||
{
|
|
||||||
m_terminateFlag = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected bool IsTerminateFlagSet()
|
|
||||||
{
|
|
||||||
lock (m_terminateFlagMutex)
|
|
||||||
{
|
|
||||||
return m_terminateFlag;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Thread m_thread;
|
|
||||||
private bool m_terminateFlag;
|
|
||||||
private Object m_terminateFlagMutex;
|
|
||||||
private NetworkStream m_netStream;
|
private NetworkStream m_netStream;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ namespace pokerth_lib
|
|||||||
m_parser = new NetParser(data, sender, callback);
|
m_parser = new NetParser(data, sender, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Start()
|
protected override void Main()
|
||||||
{
|
{
|
||||||
while (!IsTerminateFlagSet())
|
while (!IsTerminateFlagSet())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace pokerth_lib
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Start()
|
protected override void Main()
|
||||||
{
|
{
|
||||||
while (!IsTerminateFlagSet())
|
while (!IsTerminateFlagSet())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user