summaryrefslogtreecommitdiffstats
path: root/mmc_updater/depends/win32cpp/thread.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-06-07 21:10:18 +0200
committerPetr Mrázek <peterix@gmail.com>2015-06-07 21:10:18 +0200
commit6d7bff2476459049f4f554291a680e0f6003ea66 (patch)
tree4202e9f1cd843197648fec93b48a5bc88407dc2e /mmc_updater/depends/win32cpp/thread.h
parent977e11ef8d6780b173ad5ca6d13e29e721d0c6a0 (diff)
downloadMultiMC-6d7bff2476459049f4f554291a680e0f6003ea66.tar
MultiMC-6d7bff2476459049f4f554291a680e0f6003ea66.tar.gz
MultiMC-6d7bff2476459049f4f554291a680e0f6003ea66.tar.lz
MultiMC-6d7bff2476459049f4f554291a680e0f6003ea66.tar.xz
MultiMC-6d7bff2476459049f4f554291a680e0f6003ea66.zip
GH-1060 remove updater code
Diffstat (limited to 'mmc_updater/depends/win32cpp/thread.h')
-rw-r--r--mmc_updater/depends/win32cpp/thread.h241
1 files changed, 0 insertions, 241 deletions
diff --git a/mmc_updater/depends/win32cpp/thread.h b/mmc_updater/depends/win32cpp/thread.h
deleted file mode 100644
index 5564d888..00000000
--- a/mmc_updater/depends/win32cpp/thread.h
+++ /dev/null
@@ -1,241 +0,0 @@
-// Win32++ Version 7.2
-// Released: 5th AUgust 2011
-//
-// David Nash
-// email: dnash@bigpond.net.au
-// url: https://sourceforge.net/projects/win32-framework
-//
-//
-// Copyright (c) 2005-2011 David Nash
-//
-// Permission is hereby granted, free of charge, to
-// any person obtaining a copy of this software and
-// associated documentation files (the "Software"),
-// to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify,
-// merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom
-// the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice
-// shall be included in all copies or substantial portions
-// of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
-// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
-// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
-// ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
-// OR OTHER DEALINGS IN THE SOFTWARE.
-//
-////////////////////////////////////////////////////////
-
-
-// The CThread class simplifies the use of threads with Win32++.
-// To use threads in your Win32++ application, inherit a class from
-// CThread, and override InitInstance. When your class is instanciated,
-// a new thread is started, and the InitInstance function is called to
-// run in the new thread.
-
-// If your thread is used to run one or more windows, InitInstance should
-// return TRUE, causing the MessageLoop function to be called. If your
-// thread doesn't require a MessageLoop, it should return FALSE. Threads
-// which don't run a message loop as sometimes referred to as "worker" threads.
-
-// Note: It is your job to end the thread before CThread ends!
-// To end a thread with a message loop, use PostQuitMessage on the thread.
-// To end a thread without a message loop, set an event, and end the thread
-// when the event is received.
-
-// Hint: It is never a good idea to use things like TerminateThread or ExitThread to
-// end your thread. These represent poor programming techniques, and are likely
-// to leak memory and resources.
-
-// More Hints for thread programming:
-// 1) Avoid using SendMessage between threads, as this will cause one thread to wait for
-// the other to respond. Use PostMessage between threads to avoid this problem.
-// 2) Access to variables and resources shared between threads need to be made thread safe.
-// Having one thread modify a resouce or variable while another thread is accessing it is
-// a recipe for disaster.
-// 3) Thread Local Storage (TLS) can be used to replace global variables to make them thread
-// safe. With TLS, each thread gets its own copy of the variable.
-// 4) Critical Sections can be used to make shared resources thread safe.
-// 5) Window messages (including user defined messages) can be posted between GUI threads to
-// communicate information between them.
-// 6) Events (created by CreateEvent) can be used to comunicate information between threads
-// (both GUI and worker threads).
-// 7) Avoid using sleep to synchronise threads. Generally speaking, the various wait
-// functions (e.g. WaitForSingleObject) will be better for this.
-
-// About Threads:
-// Each program that executes has a "process" allocated to it. A process has one or more
-// threads. Threads run independantly of each other. It is the job of the operating system
-// to manage the running of the threads, and do the task switching between threads as required.
-// Systems with multiple CPUs will be able to run as many threads simultaneously as there are
-// CPUs.
-
-// Threads behave like a program within a program. When the main thread starts, the application
-// runs the WinMain function and ends when WinMain ends. When another thread starts, it too
-// will run the function provided to it, and end when that function ends.
-
-
-#ifndef _WIN32XX_WINTHREAD_H_
-#define _WIN32XX_WINTHREAD_H_
-
-
-#include <process.h>
-
-
-namespace Win32xx
-{
-
- //////////////////////////////////////
- // Declaration of the CThread class
- //
- class CThread
- {
- public:
- CThread();
- CThread(LPSECURITY_ATTRIBUTES pSecurityAttributes, unsigned stack_size, unsigned initflag);
- virtual ~CThread();
-
- // Overridables
- virtual BOOL InitInstance();
- virtual int MessageLoop();
-
- // Operations
- HANDLE GetThread() const;
- int GetThreadID() const;
- int GetThreadPriority() const;
- DWORD ResumeThread() const;
- BOOL SetThreadPriority(int nPriority) const;
- DWORD SuspendThread() const;
-
- private:
- CThread(const CThread&); // Disable copy construction
- CThread& operator = (const CThread&); // Disable assignment operator
- void CreateThread(LPSECURITY_ATTRIBUTES pSecurityAttributes, unsigned stack_size, unsigned initflag);
- static UINT WINAPI StaticThreadCallback(LPVOID pCThread);
-
- HANDLE m_hThread; // Handle of this thread
- UINT m_nThreadID; // ID of this thread
- };
-
-}
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-namespace Win32xx
-{
-
- ///////////////////////////////////////
- // Definitions for the CThread class
- //
- inline CThread::CThread() : m_hThread(0), m_nThreadID(0)
- {
- CreateThread(0, 0, CREATE_SUSPENDED);
- }
-
- inline CThread::CThread(LPSECURITY_ATTRIBUTES pSecurityAttributes, unsigned stack_size, unsigned initflag)
- : m_hThread(0), m_nThreadID(0)
-
- {
- // Valid argument values:
- // pSecurityAttributes Either a pointer to SECURITY_ATTRIBUTES or 0
- // stack_size Either the stack size or 0
- // initflag Either CREATE_SUSPENDED or 0
-
- CreateThread(pSecurityAttributes, stack_size, initflag);
- }
-
- inline CThread::~CThread()
- {
- // A thread's state is set to signalled when the thread terminates.
- // If your thread is still running at this point, you have a bug.
- if (0 != WaitForSingleObject(m_hThread, 0))
- TRACE(_T("*** Error *** Ending CThread before ending its thread\n"));
-
- // Close the thread's handle
- ::CloseHandle(m_hThread);
- }
-
- inline void CThread::CreateThread(LPSECURITY_ATTRIBUTES pSecurityAttributes, unsigned stack_size, unsigned initflag)
- {
- // NOTE: By default, the thread is created in the default state.
- m_hThread = (HANDLE)_beginthreadex(pSecurityAttributes, stack_size, CThread::StaticThreadCallback, (LPVOID) this, initflag, &m_nThreadID);
-
- if (0 == m_hThread)
- throw CWinException(_T("Failed to create thread"));
- }
-
- inline HANDLE CThread::GetThread() const
- {
- assert(m_hThread);
- return m_hThread;
- }
-
- inline int CThread::GetThreadID() const
- {
- assert(m_hThread);
- return m_nThreadID;
- }
-
- inline int CThread::GetThreadPriority() const
- {
- assert(m_hThread);
- return ::GetThreadPriority(m_hThread);
- }
-
- inline BOOL CThread::InitInstance()
- {
- // Override this function to perform tasks when the thread starts.
-
- // return TRUE to run a message loop, otherwise return FALSE.
- // A thread with a window must run a message loop.
- return FALSE;
- }
-
- inline int CThread::MessageLoop()
- {
- // Override this function if your thread needs a different message loop
- return GetApp()->MessageLoop();
- }
-
- inline DWORD CThread::ResumeThread() const
- {
- assert(m_hThread);
- return ::ResumeThread(m_hThread);
- }
-
- inline DWORD CThread::SuspendThread() const
- {
- assert(m_hThread);
- return ::SuspendThread(m_hThread);
- }
-
- inline BOOL CThread::SetThreadPriority(int nPriority) const
- {
- assert(m_hThread);
- return ::SetThreadPriority(m_hThread, nPriority);
- }
-
- inline UINT WINAPI CThread::StaticThreadCallback(LPVOID pCThread)
- // When the thread starts, it runs this function.
- {
- // Get the pointer for this CMyThread object
- CThread* pThread = (CThread*)pCThread;
-
- if (pThread->InitInstance())
- return pThread->MessageLoop();
-
- return 0;
- }
-
-}
-
-#endif // #define _WIN32XX_WINTHREAD_H_
-