1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-20 04:09:16 +00:00

Fix line endings and tabs

This commit is contained in:
Branan Purvine-Riley
2011-04-11 16:27:55 -07:00
parent d4250e19b5
commit 908aaeb6f6
2738 changed files with 702562 additions and 702562 deletions

View File

@ -1,67 +1,67 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Intern.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_INTERN_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Intern.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_INTERN_H
/*****************************************************************************
*
* pnNlApi.cpp
*
***/
const NetLogEvent *NetLogFindEvent (unsigned type, ESrvType srvType);
/*****************************************************************************
*
* pnNlCli.cpp
*
***/
void NetLogCliInitialize (ESrvType srvType);
void NetLogCliShutdown ();
void NetLogCliDestroy ();
void NetLogCliSendEvent (const NetLogEvent &event, va_list args);
/*****************************************************************************
*
* pnNlSrv.cpp
*
***/
void NetLogSrvInitialize ();
void NetLogSrvShutdown ();
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Intern.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_INTERN_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Intern.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_INTERN_H
/*****************************************************************************
*
* pnNlApi.cpp
*
***/
const NetLogEvent *NetLogFindEvent (unsigned type, ESrvType srvType);
/*****************************************************************************
*
* pnNlCli.cpp
*
***/
void NetLogCliInitialize (ESrvType srvType);
void NetLogCliShutdown ();
void NetLogCliDestroy ();
void NetLogCliSendEvent (const NetLogEvent &event, va_list args);
/*****************************************************************************
*
* pnNlSrv.cpp
*
***/
void NetLogSrvInitialize ();
void NetLogSrvShutdown ();
void NetLogSrvDestroy ();

View File

@ -1,58 +1,58 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Pch.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PCH_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Pch.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PCH_H
// NucleusLib
#include "pnUtils/pnUtils.h"
#include "pnNetBase/pnNetBase.h"
#include "pnAsyncCore/pnAsyncCore.h"
#include "pnNetCli/pnNetCli.h"
#ifdef SERVER
#include "pnIni/pnIni.h"
#include "../ServerLib/psUtils/psUtils.h"
#endif
#define USES_PROTOCOL_SRV2LOG
#include "pnNetProtocol/pnNetProtocol.h"
#include "pnProduct/pnProduct.h"
// Local
#include "pnNetLog.h"
#include "Intern.h"
// System
#include <malloc.h> // _alloca
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Pch.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PCH_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Pch.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PCH_H
// NucleusLib
#include "pnUtils/pnUtils.h"
#include "pnNetBase/pnNetBase.h"
#include "pnAsyncCore/pnAsyncCore.h"
#include "pnNetCli/pnNetCli.h"
#ifdef SERVER
#include "pnIni/pnIni.h"
#include "../ServerLib/psUtils/psUtils.h"
#endif
#define USES_PROTOCOL_SRV2LOG
#include "pnNetProtocol/pnNetProtocol.h"
#include "pnProduct/pnProduct.h"
// Local
#include "pnNetLog.h"
#include "Intern.h"
// System
#include <malloc.h> // _alloca

View File

@ -1,148 +1,148 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNetLog.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PNNETLOG_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNetLog.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PNNETLOG_H
#define MAX_NAME_LEN 64
/*****************************************************************************
*
*
Look at psLogEvents/psLeAuth for an example of how to create a new LogEvent
*
***/
/*****************************************************************************
*
* Log Template Definitions
*
***/
enum ELogParamType {
kLogParamInt, // (int)
kLogParamUnsigned, // (unsigned)
kLogParamFloat, // (float)
kLogParamUuid, // Uuid
kLogParamStringW, // (const wchar *)
kLogParamLong, // (long) or (dword)
kLogParamLongLong, // (long long) or (qword)
kNumLogParamTypes
};
struct NetLogField {
ELogParamType type; // element type
wchar name[MAX_PATH];
};
struct NetLogEvent {
ESrvType srvType;
unsigned logEventType;
const wchar * eventName;
const NetLogField * fields;
unsigned numFields;
};
struct NetLogSrvField {
const wchar *name;
const wchar *data;
};
#define NET_LOG_FIELD_INT(name) { kLogParamInt, name }
#define NET_LOG_FIELD_UNSIGNED(name) { kLogParamUnsigned, name }
#define NET_LOG_FIELD_FLOAT(name) { kLogParamFloat, name }
#define NET_LOG_FIELD_STRING(name) { kLogParamStringW, name }
#define NET_LOG_FIELD_UUID(name) { kLogParamUuid, name }
#define NET_LOG_FIELD_LONG(name) { kLogParamLong, name }
#define NET_LOG_FIELD_LONGLONG(name) { kLogParamLongLong, name }
#define NET_LOG_EVENT_AUTH(name) { kSrvTypeAuth, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
#define NET_LOG_EVENT_GAME(name) { kSrvTypeGame, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
#define NET_LOG_EVENT_MCP(name) { kSrvTypeMcp, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
#define NET_LOG_EVENT_DB(name) { kSrvTypeDb, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
/*****************************************************************************
*
* pnNlApi.cpp
*
***/
void NetLogInitialize (ESrvType srvType);
void NetLogShutdown ();
void NetLogDestroy ();
void NetLogRegisterEvents (const NetLogEvent events[], unsigned count);
// Should only be called by psLogEvents - look there for logging functions
void NetLogSendEvent (
unsigned type,
...
);
/*****************************************************************************
*
* pnNlConn.cpp
*
***/
enum {
kNlCliNumConn,
kNlCliNumTrans,
kNlCliNumPendingSaves,
kNlCliNumPerf,
};
long NlCliGetPerf (unsigned index);
/*****************************************************************************
*
* pnNlSrv.cpp
*
***/
struct LogConn;
enum {
kNlSrvPerfConnCount,
kNlSrvPerfConnDenied,
kNlSrvNumPerf
};
typedef void (*NlSrvCallback)(const NetLogEvent *event, const ARRAY(wchar) &, unsigned, NetAddressNode &, qword, unsigned, unsigned);
long NetLogSrvGetPerf (unsigned index);
void NetLogSrvRegisterCallback(NlSrvCallback callback);
void LogConnIncRef (LogConn * conn);
void LogConnDecRef (LogConn * conn);
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNetLog.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PNNETLOG_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNetLog.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETLOG_PNNETLOG_H
#define MAX_NAME_LEN 64
/*****************************************************************************
*
*
Look at psLogEvents/psLeAuth for an example of how to create a new LogEvent
*
***/
/*****************************************************************************
*
* Log Template Definitions
*
***/
enum ELogParamType {
kLogParamInt, // (int)
kLogParamUnsigned, // (unsigned)
kLogParamFloat, // (float)
kLogParamUuid, // Uuid
kLogParamStringW, // (const wchar *)
kLogParamLong, // (long) or (dword)
kLogParamLongLong, // (long long) or (qword)
kNumLogParamTypes
};
struct NetLogField {
ELogParamType type; // element type
wchar name[MAX_PATH];
};
struct NetLogEvent {
ESrvType srvType;
unsigned logEventType;
const wchar * eventName;
const NetLogField * fields;
unsigned numFields;
};
struct NetLogSrvField {
const wchar *name;
const wchar *data;
};
#define NET_LOG_FIELD_INT(name) { kLogParamInt, name }
#define NET_LOG_FIELD_UNSIGNED(name) { kLogParamUnsigned, name }
#define NET_LOG_FIELD_FLOAT(name) { kLogParamFloat, name }
#define NET_LOG_FIELD_STRING(name) { kLogParamStringW, name }
#define NET_LOG_FIELD_UUID(name) { kLogParamUuid, name }
#define NET_LOG_FIELD_LONG(name) { kLogParamLong, name }
#define NET_LOG_FIELD_LONGLONG(name) { kLogParamLongLong, name }
#define NET_LOG_EVENT_AUTH(name) { kSrvTypeAuth, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
#define NET_LOG_EVENT_GAME(name) { kSrvTypeGame, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
#define NET_LOG_EVENT_MCP(name) { kSrvTypeMcp, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
#define NET_LOG_EVENT_DB(name) { kSrvTypeDb, kLogEventId_##name, L#name, kLogEventFields_##name, arrsize( kLogEventFields_##name )}
/*****************************************************************************
*
* pnNlApi.cpp
*
***/
void NetLogInitialize (ESrvType srvType);
void NetLogShutdown ();
void NetLogDestroy ();
void NetLogRegisterEvents (const NetLogEvent events[], unsigned count);
// Should only be called by psLogEvents - look there for logging functions
void NetLogSendEvent (
unsigned type,
...
);
/*****************************************************************************
*
* pnNlConn.cpp
*
***/
enum {
kNlCliNumConn,
kNlCliNumTrans,
kNlCliNumPendingSaves,
kNlCliNumPerf,
};
long NlCliGetPerf (unsigned index);
/*****************************************************************************
*
* pnNlSrv.cpp
*
***/
struct LogConn;
enum {
kNlSrvPerfConnCount,
kNlSrvPerfConnDenied,
kNlSrvNumPerf
};
typedef void (*NlSrvCallback)(const NetLogEvent *event, const ARRAY(wchar) &, unsigned, NetAddressNode &, qword, unsigned, unsigned);
long NetLogSrvGetPerf (unsigned index);
void NetLogSrvRegisterCallback(NlSrvCallback callback);
void LogConnIncRef (LogConn * conn);
void LogConnDecRef (LogConn * conn);

View File

@ -1,215 +1,215 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNlApi.cpp
*
***/
#include "Pch.h"
#pragma hdrstop
/*****************************************************************************
*
* Private Data
*
***/
struct EventHash {
unsigned eventType;
ESrvType srvType;
inline EventHash (
unsigned eventType,
ESrvType srvType
);
inline dword GetHash () const;
inline bool operator== (const EventHash & rhs) const;
};
struct NetLogEventHash : EventHash {
const NetLogEvent * event;
NetLogEventHash(
unsigned eventType,
ESrvType srvType,
const NetLogEvent *event
);
HASHLINK(NetLogEventHash) link;
};
static CCritSect s_critsect;
static ESrvType s_srvType;
static HASHTABLEDECL(NetLogEventHash, EventHash, link) s_registeredEvents;
/*****************************************************************************
*
* NetLogEventHash
*
***/
//============================================================================
NetLogEventHash::NetLogEventHash (
unsigned eventType,
ESrvType srvType,
const NetLogEvent *event
) : EventHash(eventType, srvType),
event(event)
{
}
/*****************************************************************************
*
* Event Hash
*
***/
//============================================================================
inline EventHash::EventHash (
unsigned eventType,
ESrvType srvType
) : eventType(eventType)
, srvType(srvType)
{
}
//============================================================================
inline dword EventHash::GetHash () const {
CHashValue hash(this, sizeof(*this));
return hash.GetHash();
}
//============================================================================
inline bool EventHash::operator== (const EventHash & rhs) const {
return
eventType == rhs.eventType &&
srvType == rhs.srvType;
}
/*****************************************************************************
*
* Private Functions
*
***/
//============================================================================
static void NetLogUnRegisterEvents () {
HASHTABLEDECL(NetLogEventHash, EventHash, link) tempHashTable;
s_critsect.Enter();
{
while(NetLogEventHash *hash = s_registeredEvents.Head()) {
tempHashTable.Add(hash);
}
}
s_critsect.Leave();
while(NetLogEventHash *hash = tempHashTable.Head()) {
delete hash;
}
}
/*****************************************************************************
*
* Public Functions
*
***/
//============================================================================
void NetLogInitialize (ESrvType srvType) {
s_srvType = srvType;
if(s_srvType == kSrvTypeLog)
NetLogSrvInitialize();
else
NetLogCliInitialize(srvType);
}
//============================================================================
void NetLogShutdown () {
if(s_srvType == kSrvTypeLog)
NetLogSrvShutdown();
else
NetLogCliShutdown();
NetLogUnRegisterEvents();
}
//============================================================================
void NetLogDestroy () {
if(s_srvType == kSrvTypeLog)
NetLogSrvDestroy();
else
NetLogCliDestroy();
}
//============================================================================
void NetLogRegisterEvents (const NetLogEvent events[], unsigned count) {
NetLogEventHash *hash;
HASHTABLEDECL(NetLogEventHash, EventHash, link) tempHashTable;
for(unsigned i = 0; i < count; ++i) {
hash = NEW(NetLogEventHash)(events[i].logEventType, events[i].srvType, &events[i]);
tempHashTable.Add(hash);
}
s_critsect.Enter();
{
while(NetLogEventHash *hash = tempHashTable.Head()) {
s_registeredEvents.Add(hash);
}
}
s_critsect.Leave();
}
//============================================================================
const NetLogEvent *NetLogFindEvent (unsigned type, ESrvType srvType) {
NetLogEventHash *hash;
s_critsect.Enter();
{
hash = s_registeredEvents.Find(EventHash(type, srvType));
}
s_critsect.Leave();
return hash ? hash->event : nil;
}
//============================================================================
void NetLogSendEvent (
unsigned type
...
) {
const NetLogEvent *event = NetLogFindEvent(type, s_srvType);
if(event) {
va_list args;
va_start(args, type);
NetLogCliSendEvent(*event, args);
va_end(args);
}
else {
LogMsg( kLogError, "unable to log event, event not found SrvType: %d EventType: %d.", s_srvType, type);
}
}
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNlApi.cpp
*
***/
#include "Pch.h"
#pragma hdrstop
/*****************************************************************************
*
* Private Data
*
***/
struct EventHash {
unsigned eventType;
ESrvType srvType;
inline EventHash (
unsigned eventType,
ESrvType srvType
);
inline dword GetHash () const;
inline bool operator== (const EventHash & rhs) const;
};
struct NetLogEventHash : EventHash {
const NetLogEvent * event;
NetLogEventHash(
unsigned eventType,
ESrvType srvType,
const NetLogEvent *event
);
HASHLINK(NetLogEventHash) link;
};
static CCritSect s_critsect;
static ESrvType s_srvType;
static HASHTABLEDECL(NetLogEventHash, EventHash, link) s_registeredEvents;
/*****************************************************************************
*
* NetLogEventHash
*
***/
//============================================================================
NetLogEventHash::NetLogEventHash (
unsigned eventType,
ESrvType srvType,
const NetLogEvent *event
) : EventHash(eventType, srvType),
event(event)
{
}
/*****************************************************************************
*
* Event Hash
*
***/
//============================================================================
inline EventHash::EventHash (
unsigned eventType,
ESrvType srvType
) : eventType(eventType)
, srvType(srvType)
{
}
//============================================================================
inline dword EventHash::GetHash () const {
CHashValue hash(this, sizeof(*this));
return hash.GetHash();
}
//============================================================================
inline bool EventHash::operator== (const EventHash & rhs) const {
return
eventType == rhs.eventType &&
srvType == rhs.srvType;
}
/*****************************************************************************
*
* Private Functions
*
***/
//============================================================================
static void NetLogUnRegisterEvents () {
HASHTABLEDECL(NetLogEventHash, EventHash, link) tempHashTable;
s_critsect.Enter();
{
while(NetLogEventHash *hash = s_registeredEvents.Head()) {
tempHashTable.Add(hash);
}
}
s_critsect.Leave();
while(NetLogEventHash *hash = tempHashTable.Head()) {
delete hash;
}
}
/*****************************************************************************
*
* Public Functions
*
***/
//============================================================================
void NetLogInitialize (ESrvType srvType) {
s_srvType = srvType;
if(s_srvType == kSrvTypeLog)
NetLogSrvInitialize();
else
NetLogCliInitialize(srvType);
}
//============================================================================
void NetLogShutdown () {
if(s_srvType == kSrvTypeLog)
NetLogSrvShutdown();
else
NetLogCliShutdown();
NetLogUnRegisterEvents();
}
//============================================================================
void NetLogDestroy () {
if(s_srvType == kSrvTypeLog)
NetLogSrvDestroy();
else
NetLogCliDestroy();
}
//============================================================================
void NetLogRegisterEvents (const NetLogEvent events[], unsigned count) {
NetLogEventHash *hash;
HASHTABLEDECL(NetLogEventHash, EventHash, link) tempHashTable;
for(unsigned i = 0; i < count; ++i) {
hash = NEW(NetLogEventHash)(events[i].logEventType, events[i].srvType, &events[i]);
tempHashTable.Add(hash);
}
s_critsect.Enter();
{
while(NetLogEventHash *hash = tempHashTable.Head()) {
s_registeredEvents.Add(hash);
}
}
s_critsect.Leave();
}
//============================================================================
const NetLogEvent *NetLogFindEvent (unsigned type, ESrvType srvType) {
NetLogEventHash *hash;
s_critsect.Enter();
{
hash = s_registeredEvents.Find(EventHash(type, srvType));
}
s_critsect.Leave();
return hash ? hash->event : nil;
}
//============================================================================
void NetLogSendEvent (
unsigned type
...
) {
const NetLogEvent *event = NetLogFindEvent(type, s_srvType);
if(event) {
va_list args;
va_start(args, type);
NetLogCliSendEvent(*event, args);
va_end(args);
}
else {
LogMsg( kLogError, "unable to log event, event not found SrvType: %d EventType: %d.", s_srvType, type);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff