28a080 | 2000-08-14 | Martin Stjernholm | |
|
bc34bf | 2002-10-25 | Martin Stjernholm | |
|
f2180f | 2002-03-12 | Martin Stjernholm | |
#ifndef REQUEST_TRACE_H
#define REQUEST_TRACE_H
#include <roxen.h>
#include <module.h>
|
28a080 | 2000-08-14 | Martin Stjernholm | |
|
bc34bf | 2002-10-25 | Martin Stjernholm | |
|
76c8c1 | 2002-03-19 | Martin Stjernholm | |
|
28a080 | 2000-08-14 | Martin Stjernholm | | #ifdef REQUEST_TRACE
# define TRACE_ENTER(A,B) Roxen->trace_enter (id, (A), (B))
# define TRACE_LEAVE(A) Roxen->trace_leave (id, (A))
#else
|
fa4f79 | 2000-03-13 | Martin Nilsson | | # define TRACE_ENTER(A,B) do{ \
|
4b0968 | 2001-11-01 | Henrik Grubbström (Grubba) | | function(string,mixed ...:void) _trace_enter; \
|
3ef3d1 | 2001-11-01 | Henrik Grubbström (Grubba) | | if(id && \
(_trace_enter = \
[function(string,mixed ...:void)]([mapping(string:mixed)]id->misc)-> \
trace_enter)) \
_trace_enter((A), (B)); \
|
fa4f79 | 2000-03-13 | Martin Nilsson | | }while(0)
# define TRACE_LEAVE(A) do{ \
|
4b0968 | 2001-11-01 | Henrik Grubbström (Grubba) | | function(string:void) _trace_leave; \
|
3ef3d1 | 2001-11-01 | Henrik Grubbström (Grubba) | | if(id && \
(_trace_leave = \
[function(string:void)]([mapping(string:mixed)]id->misc)-> \
trace_leave)) \
_trace_leave(A); \
|
fa4f79 | 2000-03-13 | Martin Nilsson | | }while(0)
|
28a080 | 2000-08-14 | Martin Stjernholm | |
|
fa4f79 | 2000-03-13 | Martin Nilsson | | #endif
|
471705 | 2001-05-07 | Per Hedbor | |
|
76c8c1 | 2002-03-19 | Martin Stjernholm | |
|
bc34bf | 2002-10-25 | Martin Stjernholm | |
|
76c8c1 | 2002-03-19 | Martin Stjernholm | |
#define SIMPLE_TRACE_ENTER(OBJ, MSG...) do { \
array _msg_arr_; \
|
bc34bf | 2002-10-25 | Martin Stjernholm | | TRACE_ENTER ((_msg_arr_ = ({MSG}), \
sizeof (_msg_arr_) > 1 ? sprintf (@_msg_arr_) : \
(sizeof (_msg_arr_) ? _msg_arr_[0] : "")), \
|
76c8c1 | 2002-03-19 | Martin Stjernholm | | (OBJ)); \
} while (0)
#define SIMPLE_TRACE_LEAVE(MSG...) do { \
array _msg_arr_; \
|
bc34bf | 2002-10-25 | Martin Stjernholm | | TRACE_LEAVE ((_msg_arr_ = ({MSG}), \
sizeof (_msg_arr_) > 1 ? sprintf (@_msg_arr_) : \
(sizeof (_msg_arr_) ? _msg_arr_[0] : ""))); \
|
76c8c1 | 2002-03-19 | Martin Stjernholm | | } while (0)
|
f2180f | 2002-03-12 | Martin Stjernholm | |
#define TAG_TRACE_ENTER(MSG...) do { \
array _msg_arr_; \
string _msg_; \
|
bc34bf | 2002-10-25 | Martin Stjernholm | | TRACE_ENTER ("tag <" + (tag && tag->name) + "> " + \
(_msg_arr_ = ({MSG}), \
_msg_ = sizeof (_msg_arr_) > 1 ? sprintf (@_msg_arr_) : \
(sizeof (_msg_arr_) ? _msg_arr_[0] : "")), \
|
f2180f | 2002-03-12 | Martin Stjernholm | | tag); \
DO_IF_DEBUG ( \
if (TAG_DEBUG_TEST (flags & RXML.FLAG_DEBUG)) \
tag_debug ("%O: %s\n", this_object(), \
|
76c8c1 | 2002-03-19 | Martin Stjernholm | | _msg_ || \
(_msg_arr_ = ({MSG}), \
sizeof (_msg_arr_) > 1 ? sprintf (@_msg_arr_) : \
(sizeof (_msg_arr_) ? _msg_arr_[0] : ""))); \
|
bc34bf | 2002-10-25 | Martin Stjernholm | | ); \
|
f2180f | 2002-03-12 | Martin Stjernholm | | } while (0)
#define TAG_TRACE_LEAVE(MSG...) do { \
array _msg_arr_; \
string _msg_; \
|
bc34bf | 2002-10-25 | Martin Stjernholm | | TRACE_LEAVE ((_msg_arr_ = ({MSG}), \
_msg_ = sizeof (_msg_arr_) > 1 ? sprintf (@_msg_arr_) : \
(sizeof (_msg_arr_) ? _msg_arr_[0] : ""))); \
|
f2180f | 2002-03-12 | Martin Stjernholm | | DO_IF_DEBUG ( \
if (TAG_DEBUG_TEST (flags & RXML.FLAG_DEBUG)) { \
if (!_msg_) { \
_msg_arr_ = ({MSG}); \
|
76c8c1 | 2002-03-19 | Martin Stjernholm | | _msg_ = \
sizeof (_msg_arr_) > 1 ? sprintf (@_msg_arr_) : \
(sizeof (_msg_arr_) ? _msg_arr_[0] : ""); \
|
f2180f | 2002-03-12 | Martin Stjernholm | | } \
if (sizeof (_msg_)) tag_debug ("%O: %s\n", this_object(), _msg_); \
} \
); \
} while (0)
|
471705 | 2001-05-07 | Per Hedbor | |
#ifdef AVERAGE_PROFILING
#define PROF_ENTER(X,Y) id->conf->avg_prof_enter( X, Y, id )
#define PROF_LEAVE(X,Y) id->conf->avg_prof_leave( X, Y, id )
#define COND_PROF_ENTER(X,Y,Z) if(X)PROF_ENTER(Y,Z)
#define COND_PROF_LEAVE(X,Y,Z) if(X)PROF_LEAVE(Y,Z)
#else
#define PROF_ENTER(X,Y)
#define PROF_LEAVE(X,Y)
#define COND_PROF_ENTER(X,Y,Z)
#define COND_PROF_LEAVE(X,Y,Z)
#endif
|
f2180f | 2002-03-12 | Martin Stjernholm | |
#endif // !REQUEST_TRACE_H
|