aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/Base.cpp68
-rw-r--r--src/shared/Base.h55
-rw-r--r--src/shared/CMakeLists.txt4
-rw-r--r--src/shared/Mthread.cpp206
-rw-r--r--src/shared/Mthread.h63
5 files changed, 0 insertions, 396 deletions
diff --git a/src/shared/Base.cpp b/src/shared/Base.cpp
deleted file mode 100644
index ca5094810d6..00000000000
--- a/src/shared/Base.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- Base class interface
- Copyright (C) 1998,1999 by Andrew Zabolotny
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#include "Base.h"
-
-Base::~Base ()
-{
-}
-
-/**
- * Decrement object's reference count; as soon as the last reference
- * to the object is removed, it is destroyed.
- */
-
-void Base::DecRef ()
-{
- if (!--RefCount)
- delete this;
-}
-
-/**
- * Object initialization. The initial reference count is set to one;
- * this means if you call DecRef() immediately after creating the object,
- * it will be destroyed.
- */
-Base::Base ()
-{
- RefCount = 1;
-}
-
-/**
- * Increment reference count.
- * Every time when you copy a pointer to a object and store it for
- * later use you MUST call IncRef() on it; this will allow to keep
- * objects as long as they are referenced by some entity.
- */
-void Base::IncRef ()
-{
- ++RefCount;
-
-}
-
-/**
- * Query number of references to this object.
- * I would rather prefer to have the reference counter strictly private,
- * but sometimes, mostly for debugging, such a function can help.
- */
-int Base::GetRefCount ()
-{
- return RefCount;
-}
-
diff --git a/src/shared/Base.h b/src/shared/Base.h
deleted file mode 100644
index e14ea6b27b9..00000000000
--- a/src/shared/Base.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- Base class interface
- Copyright (C) 1998,1999 by Andrew Zabolotny
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef __BASE_H__
-#define __BASE_H__
-
-#include "Common.h"
-
-/**
- * This class is intended to be a base class for every other class.
- * It defines the basic interface available for any object.
- */
-class Base
-{
- private:
- /// Object reference count
- int RefCount;
-
- protected:
- /**
- * Destroy this object. Destructor is virtual, because class contains
- * virtual methods; also it is private because it is never intended
- * to be called directly; use DecRef() instead: when reference counter
- * reaches zero, the object will be destroyed.
- */
- virtual ~Base ();
-
- public:
-
- Base ();
-
- void IncRef ();
-
- void DecRef ();
- int GetRefCount ();
-
-};
-#endif // __BASE_H__
-
diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt
index 36d65544d3c..8ecfccad34f 100644
--- a/src/shared/CMakeLists.txt
+++ b/src/shared/CMakeLists.txt
@@ -6,16 +6,12 @@ add_subdirectory(Database)
########### next target ###############
SET(shared_STAT_SRCS
- Base.cpp
- Base.h
ByteBuffer.h
Common.cpp
Common.h
Errors.h
Log.cpp
Log.h
- Mthread.cpp
- Mthread.h
ProgressBar.cpp
ProgressBar.h
Timer.h
diff --git a/src/shared/Mthread.cpp b/src/shared/Mthread.cpp
deleted file mode 100644
index fbbeeb5a620..00000000000
--- a/src/shared/Mthread.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- Cross-platform thread handling
- Copyright (C) 2005 Andrew Zabolotny
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#include "Mthread.h"
-
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE_CC__)
-# define TRINITY_PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE
-#else
-# define TRINITY_PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
-#endif
-
-#if PLATFORM != PLATFORM_WINDOWS
-
-MThread::MThread ()
-{
- tid = 0;
-}
-
-MThread::~MThread ()
-{
- /* Kill thread if this is not the current thread */
- if (tid && (pthread_self () != tid))
- {
- pthread_cancel (tid);
- pthread_join (tid, NULL);
- }
-}
-
-static void *thread_start_routine (void *arg)
-{
- MThread *newthr = (MThread *)arg;
- pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
- newthr->routine (newthr->arg);
- return NULL;
-}
-
-MThread *MThread::Start (void (*routine) (void *arg), void *arg)
-{
- MThread *newthr = new MThread ();
- newthr->routine = routine;
- newthr->arg = arg;
- int rc = pthread_create (&newthr->tid, NULL, thread_start_routine, newthr);
- if (rc)
- {
- newthr->DecRef ();
- return NULL;
- }
-
- return newthr;
-}
-
-pthread_mutexattr_t MMutex::attr;
-int MMutex::attr_refcount = 0;
-
-MMutex::MMutex ()
-{
- if (!attr_refcount++)
- {
- pthread_mutexattr_init (&attr);
- pthread_mutexattr_settype (&attr, TRINITY_PTHREAD_MUTEX_RECURSIVE);
- }
-
- pthread_mutex_init (&mutex, &attr);
-}
-
-MMutex::~MMutex ()
-{
- pthread_mutex_destroy (&mutex);
- if (!--attr_refcount)
- pthread_mutexattr_destroy (&attr);
-}
-
-bool MMutex::Lock ()
-{
- return (pthread_mutex_lock (&mutex) == 0);
-}
-
-bool MMutex::TryLock ()
-{
- return (pthread_mutex_trylock (&mutex) == 0);
-}
-
-void MMutex::Unlock ()
-{
- pthread_mutex_unlock (&mutex);
-}
-
-MMutex *MMutex::Create ()
-{
- return new MMutex ();
-}
-
-#else //windows
-
-MThread::MThread()
-{
- th = NULL;
-}
-
-MThread::~MThread ()
-{
- /* Kill thread if this is not current thread */
- if (th && (GetCurrentThreadId () != id))
- {
- TerminateThread (th, 0);
- WaitForSingleObject (th, INFINITE);
- CloseHandle (th);
- }
-}
-
-bool MThread::SetPriority (ThreadPriority prio)
-{
- int p;
- switch (prio)
- {
- case IDLE: p = THREAD_PRIORITY_IDLE; break;
- case LOWER: p = THREAD_PRIORITY_LOWEST; break;
- case LOW: p = THREAD_PRIORITY_BELOW_NORMAL; break;
- case NORMAL: p = THREAD_PRIORITY_NORMAL; break;
- case HIGH: p = THREAD_PRIORITY_ABOVE_NORMAL; break;
- case HIGHER: p = THREAD_PRIORITY_HIGHEST; break;
- case REALTIME: p = THREAD_PRIORITY_TIME_CRITICAL; break;
- default: p = THREAD_PRIORITY_NORMAL; break;
- }
- return SetThreadPriority (th, p);
-}
-
-static DWORD WINAPI thread_start_routine (void *arg)
-//static void thread_start_routine (void *arg)
-{
- MThread *newthr = (MThread *)arg;
- newthr->id = GetCurrentThreadId ();
- newthr->routine (newthr->arg);
- return 0;
-}
-
-MThread *MThread::Start (void (*routine) (void *arg), void *arg)
-{
- DWORD dwtid;
- MThread *newthr = new MThread ();
- newthr->routine = routine;
- newthr->arg = arg;
- newthr->th = CreateThread (NULL, WIN32_THREAD_STACK_SIZE, thread_start_routine, newthr, 0, &dwtid);
- //newthr->th = (HANDLE)_beginthread(thread_start_routine, 0, newthr);
- if (!newthr->th)
- {
- newthr->DecRef ();
- return NULL;
- }
- return newthr;
-}
-
-MMutex::MMutex ()
-{
- sem = CreateMutex (NULL, FALSE, NULL);
-}
-
-MMutex::~MMutex ()
-{
- CloseHandle (sem);
-}
-
-bool MMutex::Lock ()
-{
- return (WaitForSingleObject (sem, INFINITE) != WAIT_FAILED);
-}
-
-bool MMutex::TryLock ()
-{
- DWORD state = WaitForSingleObject (sem, 0);
- return (state == WAIT_OBJECT_0) && (state != WAIT_ABANDONED);
-}
-
-void MMutex::Unlock ()
-{
- ReleaseMutex (sem);
-}
-
-MMutex *MMutex::Create ()
-{
- MMutex *mutex = new MMutex ();
- if (!mutex->sem)
- {
- mutex->DecRef ();
- return NULL;
- }
- return mutex;
-}
-#endif
-
diff --git a/src/shared/Mthread.h b/src/shared/Mthread.h
deleted file mode 100644
index d0ac6deb43c..00000000000
--- a/src/shared/Mthread.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef MTHREAD_H
-#define MTHREAD_H
-
-#include "Base.h"
-#ifndef WIN32
-#include <pthread.h>
-#else
-#include <windows.h>
-//#include "Process.h"
-#define WIN32_THREAD_STACK_SIZE 0x10000
-#endif
-
-enum ThreadPriority
-{
- IDLE,
- LOWER,
- LOW,
- NORMAL,
- HIGH,
- HIGHER,
- REALTIME
-};
-
-class MThread: public Base
-{
- public:
- static MThread *Start (void (*routine) (void *arg), void *arg);
- MThread ();
- ~MThread ();
- bool SetPriority (ThreadPriority prio);
-
- void (*routine) (void *arg);
- void *arg;
-
- #ifdef WIN32
- HANDLE th;
- ULONG id;
- #else
- pthread_t tid;
- #endif
-
-};
-
-class MMutex : public Base
-{
- public:
-
- #ifdef WIN32
- HANDLE sem;
- #else
- pthread_mutex_t mutex;
- static pthread_mutexattr_t attr;
- static int attr_refcount;
- #endif
- static MMutex *Create ();
- MMutex ();
- virtual ~MMutex ();
- virtual bool Lock ();
- virtual bool TryLock ();
- virtual void Unlock ();
-};
-#endif // MTHREAD_H
-