src/share/vm/trace/traceEvent.hpp

Print this page
rev 5685 : 8028128: Add a type safe alternative for working with counter based data
Reviewed-by:

*** 23,61 **** */ #ifndef SHARE_VM_TRACE_TRACEEVENT_HPP #define SHARE_VM_TRACE_TRACEEVENT_HPP enum EventStartTime { UNTIMED, TIMED }; - #include "utilities/macros.hpp" - #if INCLUDE_TRACE #include "trace/traceBackend.hpp" #include "trace/tracing.hpp" #include "tracefiles/traceEventIds.hpp" #include "tracefiles/traceTypes.hpp" template<typename T> class TraceEvent : public StackObj { - protected: - jlong _startTime; - jlong _endTime; - private: bool _started; #ifdef ASSERT bool _committed; bool _cancelled; protected: bool _ignore_check; #endif public: TraceEvent(EventStartTime timing=TIMED) : _startTime(0), _endTime(0), _started(false) --- 23,70 ---- */ #ifndef SHARE_VM_TRACE_TRACEEVENT_HPP #define SHARE_VM_TRACE_TRACEEVENT_HPP + #include "utilities/macros.hpp" + enum EventStartTime { UNTIMED, TIMED }; #if INCLUDE_TRACE #include "trace/traceBackend.hpp" #include "trace/tracing.hpp" #include "tracefiles/traceEventIds.hpp" #include "tracefiles/traceTypes.hpp" + #include "utilities/ticks.hpp" template<typename T> class TraceEvent : public StackObj { private: bool _started; #ifdef ASSERT bool _committed; bool _cancelled; protected: bool _ignore_check; #endif + protected: + jlong _startTime; + jlong _endTime; + + void set_starttime(const TracingTime& time) { + _startTime = time; + } + + void set_endtime(const TracingTime& time) { + _endTime = time; + } + public: TraceEvent(EventStartTime timing=TIMED) : _startTime(0), _endTime(0), _started(false)
*** 98,113 **** static_cast<T*>(this)->writeEvent(); } set_commited(); } ! void set_starttime(jlong time) { ! _startTime = time; } ! void set_endtime(jlong time) { ! _endTime = time; } TraceEventId id() const { return T::eventId; } --- 107,122 ---- static_cast<T*>(this)->writeEvent(); } set_commited(); } ! void set_starttime(const Ticks& time) { ! _startTime = time.value(); } ! void set_endtime(const Ticks& time) { ! _endTime = time.value(); } TraceEventId id() const { return T::eventId; }