| 2566 | } |
| 2567 | |
| 2568 | PerformanceTracker::~PerformanceTracker(void) { |
| 2569 | #if !defined(ELPP_DISABLE_PERFORMANCE_TRACKING) && ELPP_LOGGING_ENABLED |
| 2570 | if (m_enabled) { |
| 2571 | base::threading::ScopedLock scopedLock(lock()); |
| 2572 | if (m_scopedLog) { |
| 2573 | base::utils::DateTime::gettimeofday(&m_endTime); |
| 2574 | base::type::string_t formattedTime = getFormattedTimeTaken(); |
| 2575 | PerformanceTrackingData data(PerformanceTrackingData::DataType::Complete); |
| 2576 | data.init(this); |
| 2577 | data.m_formattedTimeTaken = formattedTime; |
| 2578 | PerformanceTrackingCallback* callback = nullptr; |
| 2579 | for (const std::pair<std::string, base::type::PerformanceTrackingCallbackPtr>& h |
| 2580 | : ELPP->m_performanceTrackingCallbacks) { |
| 2581 | callback = h.second.get(); |
| 2582 | if (callback != nullptr && callback->enabled()) { |
| 2583 | callback->handle(&data); |
| 2584 | } |
| 2585 | } |
| 2586 | } |
| 2587 | } |
| 2588 | #endif // !defined(ELPP_DISABLE_PERFORMANCE_TRACKING) |
| 2589 | } |
| 2590 | |
| 2591 | void PerformanceTracker::checkpoint(const std::string& id, const char* file, base::type::LineNumber line, |
| 2592 | const char* func) { |