diff options
Diffstat (limited to 'dep/ACE_wrappers/ace/Timeprobe.h')
-rw-r--r-- | dep/ACE_wrappers/ace/Timeprobe.h | 40 |
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 */ |