aboutsummaryrefslogtreecommitdiff
path: root/dep/ACE_wrappers/ace/Timeprobe.h
diff options
context:
space:
mode:
Diffstat (limited to 'dep/ACE_wrappers/ace/Timeprobe.h')
-rw-r--r--dep/ACE_wrappers/ace/Timeprobe.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/Timeprobe.h b/dep/ACE_wrappers/ace/Timeprobe.h
index f70a80121b8..4ec811e6317 100644
--- a/dep/ACE_wrappers/ace/Timeprobe.h
+++ b/dep/ACE_wrappers/ace/Timeprobe.h
@@ -1,4 +1,5 @@
// -*- C++ -*-
+
//=============================================================================
/**
* @file Timeprobe.h
@@ -33,25 +34,33 @@
* ACE_TIMEPROBE_* macros should spring to life.
*/
//=============================================================================
+
#ifndef ACE_TIMEPROBE_H
#define ACE_TIMEPROBE_H
#include /**/ "ace/pre.h"
+
#include "ace/config-lite.h"
#include /**/ "ace/ACE_export.h"
#include "ace/Malloc_Allocator.h"
+
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+
/* Enable ACE Timeprobes */
#if defined (ACE_ENABLE_TIMEPROBES)
#if !defined (ACE_COMPILE_TIMEPROBES)
#define ACE_COMPILE_TIMEPROBES
#endif /* ACE_COMPILE_TIMEPROBES */
#endif /* ACE_ENABLE_TIMEPROBES */
+
#if defined (ACE_COMPILE_TIMEPROBES)
+
#include "ace/OS_NS_time.h"
#include "ace/OS_NS_Thread.h"
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
/**
* @class ACE_Event_Descriptions
*
@@ -62,11 +71,14 @@ class ACE_Export ACE_Event_Descriptions
public:
/// Event descriptions
const char **descriptions_;
+
/// Minimum id of this description set
u_long minimum_id_;
+
/// Comparison
bool operator== (const ACE_Event_Descriptions &rhs) const;
};
+
/**
* @class ACE_timeprobe_t
*
@@ -81,30 +93,40 @@ public:
u_long event_number_;
const char *event_description_;
};
+
/// Type of event.
enum event_type
{
NUMBER,
STRING
};
+
/// Event.
event event_;
+
/// Type of event.
event_type event_type_;
+
/// Timestamp.
ACE_hrtime_t time_;
+
/// Id of thread posting the time probe.
ACE_thread_t thread_;
};
+
ACE_END_VERSIONED_NAMESPACE_DECL
+
#if defined (__ACE_INLINE__)
#include "ace/Timeprobe.inl"
#endif /* __ACE_INLINE__ */
+
#include "ace/Synch_Traits.h"
#include "ace/Null_Mutex.h"
#include "ace/Singleton.h"
#include "ace/Timeprobe_T.h"
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
// If ACE_MT_TIMEPROBES is defined, use a Thread_Mutex to lock the
// internal state of ACE_Timerprobe. This allows multiple threads to
// use the same ACE_Timerprobe.
@@ -113,13 +135,17 @@ typedef ACE_SYNCH_MUTEX ACE_TIMEPROBE_MUTEX;
# else /* ACE_MT_TIMEPROBES */
typedef ACE_SYNCH_NULL_MUTEX ACE_TIMEPROBE_MUTEX;
# endif /* ACE_MT_TIMEPROBES */
+
typedef ACE_New_Allocator ACE_TIMEPROBE_ALLOCATOR;
+
typedef ACE_Timeprobe_Ex<ACE_TIMEPROBE_MUTEX, ACE_TIMEPROBE_ALLOCATOR>
ACE_TIMEPROBE_WITH_LOCKING;
+
// If ACE_TSS_TIMEPROBES is defined, store the ACE_Timeprobe singleton
// in thread specific storage. This allows multiple threads to use
// their own instance of ACE_Timerprobe, without interfering with each
// other.
+
# if defined (ACE_TSS_TIMEPROBES)
# define ACE_TIMEPROBE_SINGLETON_TYPE ACE_TSS_Singleton
# define ACE_TIMEPROBE_SINGLETON_LOCK_TYPE ACE_SYNCH_NULL_MUTEX
@@ -127,35 +153,49 @@ typedef ACE_Timeprobe_Ex<ACE_TIMEPROBE_MUTEX, ACE_TIMEPROBE_ALLOCATOR>
# define ACE_TIMEPROBE_SINGLETON_TYPE ACE_Singleton
# define ACE_TIMEPROBE_SINGLETON_LOCK_TYPE ACE_SYNCH_MUTEX
# endif /* ACE_TSS_TIMEPROBES */
+
ACE_SINGLETON_DECLARE (ACE_TIMEPROBE_SINGLETON_TYPE, \
ACE_TIMEPROBE_WITH_LOCKING, \
ACE_TIMEPROBE_SINGLETON_LOCK_TYPE)
+
typedef ACE_TIMEPROBE_SINGLETON_TYPE<ACE_TIMEPROBE_WITH_LOCKING, ACE_TIMEPROBE_SINGLETON_LOCK_TYPE>
ACE_TIMEPROBE_SINGLETON;
+
ACE_END_VERSIONED_NAMESPACE_DECL
+
#endif /* ACE_COMPILE_TIMEPROBES */
+
// If ACE_ENABLE_TIMEPROBES is defined, the macros below will
// work. Otherwise, they just vanish. Using this macro, you can
// control which files/libraries are probed.
#if defined (ACE_ENABLE_TIMEPROBES) && defined (ACE_COMPILE_TIMEPROBES)
+
# define ACE_TIMEPROBE_RESET ACE_TIMEPROBE_SINGLETON::instance ()->reset ()
+
# define ACE_TIMEPROBE(id) ACE_TIMEPROBE_SINGLETON::instance ()->timeprobe (id)
+
# define ACE_TIMEPROBE_PRINT ACE_TIMEPROBE_SINGLETON::instance ()->print_times ()
+
# define ACE_TIMEPROBE_PRINT_ABSOLUTE ACE_TIMEPROBE_SINGLETON::instance ()->print_absolute_times ()
+
# define ACE_TIMEPROBE_EVENT_DESCRIPTIONS(descriptions, minimum_id) \
static int ace_timeprobe_##descriptions##_return = \
ACE_TIMEPROBE_SINGLETON::instance ()->event_descriptions \
(descriptions, minimum_id)
+
# define ACE_FUNCTION_TIMEPROBE(X) \
ACE_Function_Timeprobe<ACE_TIMEPROBE_WITH_LOCKING> function_timeprobe \
(*ACE_TIMEPROBE_SINGLETON::instance (), X)
+
#else /* ACE_ENABLE_TIMEPROBES && ACE_COMPILE_TIMEPROBES */
+
# define ACE_TIMEPROBE_RESET
# define ACE_TIMEPROBE(id)
# define ACE_TIMEPROBE_PRINT
# define ACE_TIMEPROBE_PRINT_ABSOLUTE
# define ACE_TIMEPROBE_EVENT_DESCRIPTIONS(descriptions, minimum_id)
# define ACE_FUNCTION_TIMEPROBE(X)
+
#endif /* ACE_ENABLE_TIMEPROBES && ACE_COMPILE_TIMEPROBES */
#include /**/ "ace/post.h"
#endif /* ACE_TIMEPROBE_H */