summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2006-09-06 17:59:34 +0000
committerphintuka <phintuka>2006-09-06 17:59:34 +0000
commitf2a0a38661556937f1a67cc70ecea0b68da0bac8 (patch)
tree22ee0e41f40aa1f10854f7cceb6cbd0128cedb36
parenta61a0bae6790538adbf90b97717aee21241cf014 (diff)
downloadxineliboutput-f2a0a38661556937f1a67cc70ecea0b68da0bac8.tar.gz
xineliboutput-f2a0a38661556937f1a67cc70ecea0b68da0bac8.tar.bz2
Execution time tracker
-rw-r--r--logdefs.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/logdefs.h b/logdefs.h
index 334a035e..28e754b3 100644
--- a/logdefs.h
+++ b/logdefs.h
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: logdefs.h,v 1.2 2006-08-16 22:28:52 phintuka Exp $
+ * $Id: logdefs.h,v 1.3 2006-09-06 17:59:34 phintuka Exp $
*
*/
@@ -89,5 +89,36 @@
# define TRACEF(x)
#endif
+#ifdef __cplusplus
+# ifdef TRACK_EXEC_TIME
+ class cTimeTracker
+ {
+ private:
+ const char *m_Message;
+ const char *m_Where;
+ uint64_t m_Start;
+ uint64_t m_Trigger;
+ public:
+ cTimeTracker(const char *Message, int TriggerMs, const char *Where) {
+ m_Message = Message;
+ m_Where = Where;
+ m_Trigger = TriggerMs;
+ m_Start = cTimeMs::Now();
+ }
+ ~cTimeTracker() {
+ if(cTimeMs::Now() - m_Start > m_Trigger)
+ LOGMSG("********** TimeTracker hit in %s: %d ms %s",
+ m_Where, (int)(cTimeMs::Now() - m_Start),
+ m_Message?m_Message:"");
+ }
+ };
+# define TRACK_TIME(limit) cTimeTracker _timetracker(NULL,limit,__PRETTY_FUNCTION__)
+# define TRACK_TIME_EXT(limit,msg) cTrimeTracker __timetracker(msg,limit,__PRETTY_FUNCTION__)
+# else
+# define TRACK_TIME(limit)
+# define TRACK_TIME_EXT(limit,msg)
+# endif
+# endif
+
#endif /* _LOGDEFS_H_ */