polserver/pol-core/clib/tracebuf.h
turley 189cad3479 Formating everything
Authors are not forced to use the clang-format setting, but should
atleast be inspired by the style.
The only thing which is now not allowed are tabs for ident/alignment!
2016-02-19 19:26:35 +01:00

49 lines
864 B
C++

/** @file
*
* @par History
*/
#ifndef CLIB_TRACEBUF_H
#define CLIB_TRACEBUF_H
namespace Pol
{
namespace Clib
{
#ifndef NDEBUG
#ifndef TRACEBUF_DEPTH
#define TRACEBUF_DEPTH 5000
#endif
struct TraceBufferElem
{
const char* tag;
unsigned int value;
};
extern TraceBufferElem tracebuffer[TRACEBUF_DEPTH];
extern unsigned tracebuffer_insertpoint;
inline void _tracebuffer_addelem( const char* tag, unsigned int value )
{
tracebuffer[tracebuffer_insertpoint].tag = tag;
tracebuffer[tracebuffer_insertpoint].value = value;
++tracebuffer_insertpoint;
if ( tracebuffer_insertpoint >= TRACEBUF_DEPTH )
tracebuffer_insertpoint = 0;
}
#endif
void LogTraceBuffer();
}
#ifdef NDEBUG
#define TRACEBUF_ADDELEM( tag, value ) /**/
#else
#define TRACEBUF_ADDELEM( tag, value ) Clib::_tracebuffer_addelem( tag, value )
#endif
}
#endif // CLIB_TRACEBUF_H