From b5b1796b1e7640c2cabd7267ac52069376eac5f3 Mon Sep 17 00:00:00 2001 From: lotodore Date: Sun, 11 Jan 2009 20:14:29 +0000 Subject: [PATCH] Console client: Some changes for better reuse of components. --- console/src/lib/BasicThread.cs | 55 +++++++++++++++++++++++++++ console/src/lib/net/NetThread.cs | 44 +-------------------- console/src/lib/net/ReceiverThread.cs | 2 +- console/src/lib/net/SenderThread.cs | 2 +- 4 files changed, 59 insertions(+), 44 deletions(-) create mode 100644 console/src/lib/BasicThread.cs diff --git a/console/src/lib/BasicThread.cs b/console/src/lib/BasicThread.cs new file mode 100644 index 00000000..e5d5095b --- /dev/null +++ b/console/src/lib/BasicThread.cs @@ -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; + } +} diff --git a/console/src/lib/net/NetThread.cs b/console/src/lib/net/NetThread.cs index 46e1f117..8203e69c 100644 --- a/console/src/lib/net/NetThread.cs +++ b/console/src/lib/net/NetThread.cs @@ -20,28 +20,20 @@ using System; using System.Collections.Generic; using System.Text; -using System.Threading; using System.Net; using System.Net.Sockets; using System.IO; namespace pokerth_lib { - abstract class NetThread + abstract class NetThread : BasicThread { public NetThread(NetworkStream stream) + : base() { - m_thread = new Thread(ThreadProc); - m_terminateFlag = false; - m_terminateFlagMutex = new System.Object(); m_netStream = stream; } - public void Run() - { - m_thread.Start(this); - } - protected NetworkStream NetStream { 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; } } diff --git a/console/src/lib/net/ReceiverThread.cs b/console/src/lib/net/ReceiverThread.cs index 7accaaf1..a6ed007d 100644 --- a/console/src/lib/net/ReceiverThread.cs +++ b/console/src/lib/net/ReceiverThread.cs @@ -42,7 +42,7 @@ namespace pokerth_lib m_parser = new NetParser(data, sender, callback); } - protected override void Start() + protected override void Main() { while (!IsTerminateFlagSet()) { diff --git a/console/src/lib/net/SenderThread.cs b/console/src/lib/net/SenderThread.cs index 3b9fc825..702c537c 100644 --- a/console/src/lib/net/SenderThread.cs +++ b/console/src/lib/net/SenderThread.cs @@ -43,7 +43,7 @@ namespace pokerth_lib } } - protected override void Start() + protected override void Main() { while (!IsTerminateFlagSet()) {