Chromium Code Reviews| Index: base/trace_event/persistent_async_event.cc |
| diff --git a/base/trace_event/persistent_async_event.cc b/base/trace_event/persistent_async_event.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fc78987aeb46708685ef1899377923bb7ff21140 |
| --- /dev/null |
| +++ b/base/trace_event/persistent_async_event.cc |
| @@ -0,0 +1,61 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/trace_event/persistent_async_event.h" |
| + |
| +#include "base/macros.h" |
| +#include "base/time/time.h" |
| +#include "base/trace_event/trace_event.h" |
| + |
| +// test |
|
charliea (OOO until 10-5)
2016/08/29 17:27:27
Huh?
alexandermont
2016/08/29 18:59:06
Deleted. I don't remember why i put this comment t
|
| + |
| +namespace base { |
|
charliea (OOO until 10-5)
2016/08/29 17:27:27
As strange as it seems, I think there's normall a
alexandermont
2016/08/29 18:59:06
Done
|
| +namespace trace_event { |
| + |
| +PersistentAsyncEvent::PersistentAsyncEvent(size_t id) |
| + : id_(id), active_(false) {} |
| + |
| +PersistentAsyncEvent::~PersistentAsyncEvent() {} |
| + |
| +void PersistentAsyncEvent::Start() { |
| + RecordStartEvent(); |
| + active_ = true; |
| + start_time_ = base::TimeTicks::Now().ToInternalValue(); |
|
charliea (OOO until 10-5)
2016/08/29 17:27:27
Generally, if you ever find yourself using "ToInte
alexandermont
2016/08/29 18:59:06
The TRACE_EVENT_ASYNC_BEGIN_WITH_TIMESTAMP0 macro
|
| +} |
| + |
| +void PersistentAsyncEvent::Stop() { |
| + RecordStopEvent(); |
| + active_ = false; |
| +} |
| + |
| +void PersistentAsyncEvent::RecordStartEvent() { |
| + TRACE_EVENT_ASYNC_BEGIN0("benchmark", "PersistentAsyncStart", id_); |
| +} |
| + |
| +void PersistentAsyncEvent::RecordStartEventWithTimestamp(int64_t timestamp) { |
| + TRACE_EVENT_ASYNC_BEGIN_WITH_TIMESTAMP0( |
| + "benchmark", "PersistentAsyncStart", id_, timestamp); |
| +} |
| + |
| +void PersistentAsyncEvent::RecordStopEvent() { |
| + TRACE_EVENT_ASYNC_END0("benchmark", "PersistentAsyncStop", id_); |
| +} |
| + |
| +void PersistentAsyncEvent::OnTraceLogEnabled() { |
| + if (active_) |
| + { |
| + RecordStartEventWithTimestamp(start_time_); |
| + } |
| +} |
| + |
| +void PersistentAsyncEvent::OnTraceLogDisabled() { |
| + // TODO(alexandermont): How do we call RecordStopEvent before log disabled? |
| + if (active_) |
| + { |
| + RecordStopEvent(); |
| + } |
| +} |
| + |
| +} |
| +} |