mirror of
https://github.com/debauchee/barrier.git
synced 2026-11-04 06:24:48 +08:00
win32 changes. now including windows.h with WIN32_LEAN_AND_MEAN
to avoid including some stuff we don't want (like winsock).
This commit is contained in:
@@ -5,10 +5,12 @@
|
||||
#include <assert.h>
|
||||
|
||||
#if defined(CONFIG_PLATFORM_WIN32)
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#define vsnprintf _vsnprintf
|
||||
#endif
|
||||
|
||||
// names of priorities
|
||||
static const char* g_priority[] = {
|
||||
"FATAL",
|
||||
"ERROR",
|
||||
@@ -19,17 +21,29 @@ static const char* g_priority[] = {
|
||||
"DEBUG1",
|
||||
"DEBUG2"
|
||||
};
|
||||
|
||||
// number of priorities
|
||||
static const int g_numPriority = (int)(sizeof(g_priority) /
|
||||
sizeof(g_priority[0]));
|
||||
|
||||
// the default priority
|
||||
#if defined(NDEBUG)
|
||||
static const int g_defaultMaxPriority = 4;
|
||||
#else
|
||||
static const int g_defaultMaxPriority = 5;
|
||||
#endif
|
||||
static const int g_maxPriorityLength = 7; // length of longest string
|
||||
|
||||
// length of longest string in g_priority
|
||||
static const int g_maxPriorityLength = 7;
|
||||
|
||||
// length of suffix string (": ")
|
||||
static const int g_prioritySuffixLength = 2;
|
||||
|
||||
// amount of padded required to fill in the priority prefix
|
||||
static const int g_priorityPad = g_maxPriorityLength +
|
||||
g_prioritySuffixLength;
|
||||
|
||||
// minimum length of a newline sequence
|
||||
static const int g_newlineLength = 2;
|
||||
|
||||
//
|
||||
@@ -40,7 +54,10 @@ CLog::Outputter CLog::s_outputter = NULL;
|
||||
CLog::Lock CLog::s_lock = &CLog::dummyLock;
|
||||
int CLog::s_maxPriority = -1;
|
||||
|
||||
void CLog::print(const char* fmt, ...)
|
||||
void
|
||||
CLog::print(
|
||||
const char* fmt,
|
||||
...)
|
||||
{
|
||||
// check if fmt begins with a priority argument
|
||||
int priority = 4;
|
||||
@@ -68,8 +85,12 @@ void CLog::print(const char* fmt, ...)
|
||||
delete[] buffer;
|
||||
}
|
||||
|
||||
void CLog::printt(const char* file, int line,
|
||||
const char* fmt, ...)
|
||||
void
|
||||
CLog::printt(
|
||||
const char* file,
|
||||
int line,
|
||||
const char* fmt,
|
||||
...)
|
||||
{
|
||||
// check if fmt begins with a priority argument
|
||||
int priority = 4;
|
||||
@@ -110,31 +131,39 @@ void CLog::printt(const char* file, int line,
|
||||
delete[] buffer;
|
||||
}
|
||||
|
||||
void CLog::setOutputter(Outputter outputter)
|
||||
void
|
||||
CLog::setOutputter(
|
||||
Outputter outputter)
|
||||
{
|
||||
CHoldLock lock(s_lock);
|
||||
s_outputter = outputter;
|
||||
}
|
||||
|
||||
CLog::Outputter CLog::getOutputter()
|
||||
CLog::Outputter
|
||||
CLog::getOutputter()
|
||||
{
|
||||
CHoldLock lock(s_lock);
|
||||
return s_outputter;
|
||||
}
|
||||
|
||||
void CLog::setLock(Lock newLock)
|
||||
void
|
||||
CLog::setLock(
|
||||
Lock newLock)
|
||||
{
|
||||
CHoldLock lock(s_lock);
|
||||
s_lock = (newLock == NULL) ? dummyLock : newLock;
|
||||
}
|
||||
|
||||
CLog::Lock CLog::getLock()
|
||||
CLog::Lock
|
||||
CLog::getLock()
|
||||
{
|
||||
CHoldLock lock(s_lock);
|
||||
return (s_lock == dummyLock) ? NULL : s_lock;
|
||||
}
|
||||
|
||||
bool CLog::setFilter(const char* maxPriority)
|
||||
bool
|
||||
CLog::setFilter(
|
||||
const char* maxPriority)
|
||||
{
|
||||
if (maxPriority != NULL) {
|
||||
for (int i = 0; i < g_numPriority; ++i) {
|
||||
@@ -148,24 +177,30 @@ bool CLog::setFilter(const char* maxPriority)
|
||||
return true;
|
||||
}
|
||||
|
||||
void CLog::setFilter(int maxPriority)
|
||||
void
|
||||
CLog::setFilter(
|
||||
int maxPriority)
|
||||
{
|
||||
CHoldLock lock(s_lock);
|
||||
s_maxPriority = maxPriority;
|
||||
}
|
||||
|
||||
int CLog::getFilter()
|
||||
int
|
||||
CLog::getFilter()
|
||||
{
|
||||
CHoldLock lock(s_lock);
|
||||
return getMaxPriority();
|
||||
}
|
||||
|
||||
void CLog::dummyLock(bool)
|
||||
void
|
||||
CLog::dummyLock(
|
||||
bool)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
int CLog::getMaxPriority()
|
||||
int
|
||||
CLog::getMaxPriority()
|
||||
{
|
||||
CHoldLock lock(s_lock);
|
||||
|
||||
@@ -177,7 +212,10 @@ int CLog::getMaxPriority()
|
||||
return s_maxPriority;
|
||||
}
|
||||
|
||||
void CLog::output(int priority, char* msg)
|
||||
void
|
||||
CLog::output(
|
||||
int priority,
|
||||
char* msg)
|
||||
{
|
||||
assert(priority >= -1 && priority < g_numPriority);
|
||||
assert(msg != 0);
|
||||
@@ -211,8 +249,13 @@ void CLog::output(int priority, char* msg)
|
||||
}
|
||||
}
|
||||
|
||||
char* CLog::vsprint(int pad, char* buffer, int len,
|
||||
const char* fmt, va_list args)
|
||||
char*
|
||||
CLog::vsprint(
|
||||
int pad,
|
||||
char* buffer,
|
||||
int len,
|
||||
const char* fmt,
|
||||
va_list args)
|
||||
{
|
||||
assert(len > 0);
|
||||
|
||||
@@ -240,14 +283,17 @@ char* CLog::vsprint(int pad, char* buffer, int len,
|
||||
|
||||
static DWORD s_thread = 0;
|
||||
|
||||
static BOOL WINAPI CLogSignalHandler(DWORD)
|
||||
static
|
||||
BOOL WINAPI
|
||||
CLogSignalHandler(DWORD)
|
||||
{
|
||||
// terminate cleanly and skip remaining handlers
|
||||
PostThreadMessage(s_thread, WM_QUIT, 0, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CLog::openConsole()
|
||||
void
|
||||
CLog::openConsole()
|
||||
{
|
||||
static bool s_hasConsole = false;
|
||||
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
//
|
||||
|
||||
CStopwatch::CStopwatch(bool triggered) :
|
||||
m_mark(0.0),
|
||||
m_triggered(triggered),
|
||||
m_stopped(triggered)
|
||||
m_mark(0.0),
|
||||
m_triggered(triggered),
|
||||
m_stopped(triggered)
|
||||
{
|
||||
if (!triggered)
|
||||
if (!triggered) {
|
||||
m_mark = getClock();
|
||||
}
|
||||
}
|
||||
|
||||
CStopwatch::~CStopwatch()
|
||||
@@ -18,7 +19,8 @@ CStopwatch::~CStopwatch()
|
||||
// do nothing
|
||||
}
|
||||
|
||||
double CStopwatch::reset()
|
||||
double
|
||||
CStopwatch::reset()
|
||||
{
|
||||
if (m_stopped) {
|
||||
const double dt = m_mark;
|
||||
@@ -33,43 +35,52 @@ double CStopwatch::reset()
|
||||
}
|
||||
}
|
||||
|
||||
void CStopwatch::stop()
|
||||
void
|
||||
CStopwatch::stop()
|
||||
{
|
||||
if (m_stopped)
|
||||
if (m_stopped) {
|
||||
return;
|
||||
}
|
||||
|
||||
// save the elapsed time
|
||||
m_mark = getClock() - m_mark;
|
||||
m_stopped = true;
|
||||
}
|
||||
|
||||
void CStopwatch::start()
|
||||
void
|
||||
CStopwatch::start()
|
||||
{
|
||||
m_triggered = false;
|
||||
if (!m_stopped)
|
||||
if (!m_stopped) {
|
||||
return;
|
||||
}
|
||||
|
||||
// set the mark such that it reports the time elapsed at stop()
|
||||
m_mark = getClock() - m_mark;
|
||||
m_stopped = false;
|
||||
}
|
||||
|
||||
void CStopwatch::setTrigger()
|
||||
void
|
||||
CStopwatch::setTrigger()
|
||||
{
|
||||
stop();
|
||||
m_triggered = true;
|
||||
}
|
||||
|
||||
double CStopwatch::getTime()
|
||||
double
|
||||
CStopwatch::getTime()
|
||||
{
|
||||
if (m_triggered) {
|
||||
const double dt = m_mark;
|
||||
start();
|
||||
return dt;
|
||||
}
|
||||
if (m_stopped)
|
||||
else if (m_stopped) {
|
||||
return m_mark;
|
||||
return getClock() - m_mark;
|
||||
}
|
||||
else {
|
||||
return getClock() - m_mark;
|
||||
}
|
||||
}
|
||||
|
||||
CStopwatch::operator double()
|
||||
@@ -77,16 +88,21 @@ CStopwatch::operator double()
|
||||
return getTime();
|
||||
}
|
||||
|
||||
bool CStopwatch::isStopped() const
|
||||
bool
|
||||
CStopwatch::isStopped() const
|
||||
{
|
||||
return m_stopped;
|
||||
}
|
||||
|
||||
double CStopwatch::getTime() const
|
||||
double
|
||||
CStopwatch::getTime() const
|
||||
{
|
||||
if (m_stopped)
|
||||
if (m_stopped) {
|
||||
return m_mark;
|
||||
return getClock() - m_mark;
|
||||
}
|
||||
else {
|
||||
return getClock() - m_mark;
|
||||
}
|
||||
}
|
||||
|
||||
CStopwatch::operator double() const
|
||||
@@ -98,7 +114,8 @@ CStopwatch::operator double() const
|
||||
|
||||
#include <sys/time.h>
|
||||
|
||||
double CStopwatch::getClock() const
|
||||
double
|
||||
CStopwatch::getClock() const
|
||||
{
|
||||
struct timeval t;
|
||||
gettimeofday(&t, NULL);
|
||||
@@ -121,6 +138,7 @@ double CStopwatch::getClock() const
|
||||
#define MMNOMMIO // Multimedia file I/O support
|
||||
#define MMNOMMSYSTEM // General MMSYSTEM functions
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <mmsystem.h>
|
||||
|
||||
@@ -150,18 +168,21 @@ CStopwatchInit::CStopwatchInit()
|
||||
else {
|
||||
// load winmm.dll and get timeGetTime
|
||||
s_mmInstance = LoadLibrary("winmm");
|
||||
if (s_mmInstance)
|
||||
if (s_mmInstance) {
|
||||
s_tgt = (PTimeGetTime)GetProcAddress(s_mmInstance, "timeGetTime");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CStopwatchInit::~CStopwatchInit()
|
||||
{
|
||||
if (s_mmInstance)
|
||||
if (s_mmInstance) {
|
||||
FreeLibrary(reinterpret_cast<HMODULE>(s_mmInstance));
|
||||
}
|
||||
}
|
||||
|
||||
double CStopwatch::getClock() const
|
||||
double
|
||||
CStopwatch::getClock() const
|
||||
{
|
||||
// get time. we try three ways, in order of descending precision
|
||||
if (s_freq != 0.0) {
|
||||
|
||||
Reference in New Issue
Block a user