* Removed unused/unneeded classes: Base, Mthread

* Fixed a merge issue that broke VC71 files.
* Moved WheatyExceptionReport to shared, where it should be.

--HG--
branch : trunk
This commit is contained in:
XTZGZoReX
2009-03-19 15:32:16 +01:00
parent 3ff11b64ba
commit a075d37fdd
15 changed files with 34 additions and 509 deletions

View File

@@ -24,7 +24,6 @@
#include "Common.h"
#include "Object.h"
#include "Opcodes.h"
#include "Mthread.h"
#include "SpellAuraDefines.h"
#include "UpdateFields.h"
#include "SharedDefines.h"

View File

@@ -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;
}

View File

@@ -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__

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -23,13 +23,8 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
<<<<<<< HEAD:win/VC71/mangosd.vcproj
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\trinitycore;..\..\dep\ACE_wrappers"
PreprocessorDefinitions="VERSION=&quot;0.12.0-SVN&quot;;WIN32;NDEBUG;_CONSOLE;ENABLE_CLI"
=======
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
PreprocessorDefinitions="VERSION=&quot;0.13.0-DEV&quot;;WIN32;NDEBUG;_CONSOLE;ENABLE_CLI"
>>>>>>> upstream/master:win/VC71/mangosd.vcproj
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
@@ -99,13 +94,8 @@ copy ..\..\src\trinitycore\trinitycore.conf.dist ..\..\bin\$(PlatformName)_$(Con
<Tool
Name="VCCLCompilerTool"
Optimization="0"
<<<<<<< HEAD:win/VC71/mangosd.vcproj
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\trinitycore;..\..\dep\ACE_wrappers"
PreprocessorDefinitions="VERSION=&quot;0.12.0-SVN&quot;;WIN32;_DEBUG;MANGOS_DEBUG;_CONSOLE;ENABLE_CLI"
=======
AdditionalIncludeDirectories="..\..\dep\include,..\..\src\framework,..\..\src\shared,..\..\src\game,..\..\src\mangosd;..\..\dep\ACE_wrappers"
PreprocessorDefinitions="VERSION=&quot;0.13.0-DEV&quot;;WIN32;_DEBUG;MANGOS_DEBUG;_CONSOLE;ENABLE_CLI"
>>>>>>> upstream/master:win/VC71/mangosd.vcproj
IgnoreStandardIncludePath="FALSE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -221,14 +211,6 @@ copy ..\..\src\trinitycore\trinitycore.conf.dist ..\..\bin\$(PlatformName)_$(Con
<File
RelativePath="..\..\src\trinitycore\TrinityCore.rc">
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
<File
RelativePath="..\..\src\trinitycore\WorldRunnable.cpp">
</File>

View File

@@ -176,14 +176,6 @@
<File
RelativePath="..\..\src\trinityrealm\TrinityRealm.rc">
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
</Files>
<Globals>
</Globals>

View File

@@ -237,12 +237,6 @@
</Filter>
<Filter
Name="Util">
<File
RelativePath="..\..\src\shared\Base.cpp">
</File>
<File
RelativePath="..\..\src\shared\Base.h">
</File>
<File
RelativePath="..\..\src\shared\ByteBuffer.h">
</File>
@@ -252,12 +246,6 @@
<File
RelativePath="..\..\dep\include\mersennetwister\MersenneTwister.h">
</File>
<File
RelativePath="..\..\src\shared\Mthread.cpp">
</File>
<File
RelativePath="..\..\src\shared\Mthread.h">
</File>
<File
RelativePath="..\..\src\shared\ProgressBar.cpp">
</File>
@@ -427,7 +415,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -438,7 +426,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -454,6 +442,14 @@
<File
RelativePath="..\..\src\shared\SystemConfig.h">
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
</Files>
<Globals>
</Globals>

View File

@@ -501,14 +501,6 @@
RelativePath="..\..\src\mangosd\RASocket.h"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
<File
RelativePath="..\..\src\mangosd\WorldRunnable.cpp"
>

View File

@@ -445,14 +445,6 @@
RelativePath="..\..\src\realmd\RealmList.h"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
</Files>
<Globals>
</Globals>

View File

@@ -512,14 +512,6 @@
<Filter
Name="Util"
>
<File
RelativePath="..\..\src\shared\Base.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\Base.h"
>
</File>
<File
RelativePath="..\..\src\shared\ByteBuffer.h"
>
@@ -532,14 +524,6 @@
RelativePath="..\..\dep\include\mersennetwister\MersenneTwister.h"
>
</File>
<File
RelativePath="..\..\src\shared\Mthread.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\Mthread.h"
>
</File>
<File
RelativePath="..\..\src\shared\ProgressBar.cpp"
>
@@ -761,7 +745,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -772,7 +756,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -783,7 +767,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -794,7 +778,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -813,6 +797,14 @@
RelativePath="..\..\src\shared\SystemConfig.h"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
</Files>
<Globals>
</Globals>

View File

@@ -501,14 +501,6 @@
RelativePath="..\..\src\mangosd\RASocket.h"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
<File
RelativePath="..\..\src\mangosd\WorldRunnable.cpp"
>

View File

@@ -446,14 +446,6 @@
RelativePath="..\..\src\realmd\RealmList.h"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
</Files>
<Globals>
</Globals>

View File

@@ -519,14 +519,6 @@
<Filter
Name="Util"
>
<File
RelativePath="..\..\src\shared\Base.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\Base.h"
>
</File>
<File
RelativePath="..\..\src\shared\ByteBuffer.h"
>
@@ -539,14 +531,6 @@
RelativePath="..\..\dep\include\mersennetwister\MersenneTwister.h"
>
</File>
<File
RelativePath="..\..\src\shared\Mthread.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\Mthread.h"
>
</File>
<File
RelativePath="..\..\src\shared\ProgressBar.cpp"
>
@@ -768,7 +752,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -779,7 +763,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -790,7 +774,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -801,7 +785,7 @@
>
<Tool
Name="VCCustomBuildTool"
Description="Getting Version... :)"
Description="Getting Version..."
CommandLine="cd $(InputDir)&#x0D;&#x0A;&quot;$(TargetDir)\..\genrevision__$(PlatformName)_$(ConfigurationName)\genrevision.exe&quot; &quot;..\..&quot;&#x0D;&#x0A;"
AdditionalDependencies="$(SolutionDir)../.hg/branch.cache"
Outputs="revision.h"
@@ -820,6 +804,14 @@
RelativePath="..\..\src\shared\SystemConfig.h"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.cpp"
>
</File>
<File
RelativePath="..\..\src\shared\WheatyExceptionReport.h"
>
</File>
</Files>
<Globals>
</Globals>