Index: base/trace_event/trace_event_etw_export_win.h |
diff --git a/base/trace_event/trace_event_etw_export_win.h b/base/trace_event/trace_event_etw_export_win.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..73a9d89ccdf84d934845e6456126d14f3ed0e871 |
--- /dev/null |
+++ b/base/trace_event/trace_event_etw_export_win.h |
@@ -0,0 +1,66 @@ |
+// Copyright (c) 2015 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. |
+ |
+// This file contains the Windows-specific exporting to ETW. |
+#ifndef BASE_TRACE_EVENT_TRACE_ETW_EXPORT_H_ |
+#define BASE_TRACE_EVENT_TRACE_ETW_EXPORT_H_ |
+ |
+#include "base/base_export.h" |
+#include "base/trace_event/trace_event_impl.h" |
+ |
+// Fwd. |
+template <typename Type> |
+struct StaticMemorySingletonTraits; |
+ |
+namespace base { |
+namespace trace_event { |
+ |
+class BASE_EXPORT TraceEventETWExport { |
+ public: |
+ ~TraceEventETWExport(); |
+ |
+ // Retrieves the singleton. |
+ // Note that this may return NULL post-AtExit processing. |
+ static TraceEventETWExport* GetInstance(); |
+ |
+ static void EnableETWExport(); |
+ static void DisableETWExport(); |
+ |
+ static bool isETWExportEnabled() { return GetInstance()->ETWExportEnabled_; } |
+ |
+ static void AddEvent( |
+ char phase, |
+ const unsigned char* category_group_enabled, |
+ const char* name, |
+ unsigned long long id, |
+ int num_args, |
+ const char** arg_names, |
+ const unsigned char* arg_types, |
+ const unsigned long long* arg_values, |
+ const scoped_refptr<ConvertableToTraceFormat>* convertable_values); |
+ |
+ static void AddCustomEvent(const char* name, |
+ char const* phase, |
+ const char* arg_name_1, |
+ const char* arg_value_1, |
+ const char* arg_name_2, |
+ const char* arg_value_2, |
+ const char* arg_name_3, |
+ const char* arg_value_3); |
+ |
+ void Resurrect(); |
+ |
+ private: |
+ bool ETWExportEnabled_; |
+ // Ensure only the provider can construct us. |
+ friend struct StaticMemorySingletonTraits<TraceEventETWExport>; |
+ TraceEventETWExport(); |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TraceEventETWExport); |
+}; |
+ |
+} // namespace trace_event |
+} // namespace base |
+ |
+#endif // BASE_TRACE_EVENT_TRACE_ETW_EXPORT_H_ |