%PDF- %PDF-
| Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/libplatform/tracing/ |
| Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/libplatform/tracing/recorder.h |
// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_LIBPLATFORM_TRACING_RECORDER_H_
#define V8_LIBPLATFORM_TRACING_RECORDER_H_
#include <stdint.h>
#include "include/libplatform/v8-tracing.h"
#if V8_OS_DARWIN
#include <os/signpost.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunguarded-availability"
#endif
#if !defined(V8_ENABLE_SYSTEM_INSTRUMENTATION)
#error "only include this file if V8_ENABLE_SYSTEM_INSTRUMENTATION"
#endif // V8_ENABLE_SYSTEM_INSTRUMENTATION
namespace v8 {
namespace platform {
namespace tracing {
// This class serves as a base class for emitting events to system event
// controllers: ETW for Windows, Signposts on Mac (to be implemented). It is
// enabled by turning on both the ENABLE_SYSTEM_INSTRUMENTATION build flag and
// the --enable-system-instrumentation command line flag. When enabled, it is
// called from within SystemInstrumentationTraceWriter and replaces the
// JSONTraceWriter for event-tracing.
class V8_PLATFORM_EXPORT Recorder {
public:
Recorder();
~Recorder();
bool IsEnabled();
bool IsEnabled(const uint8_t level);
void AddEvent(TraceObject* trace_event);
private:
#if V8_OS_DARWIN
os_log_t v8Provider;
#endif
};
} // namespace tracing
} // namespace platform
} // namespace v8
#if V8_OS_DARWIN
#pragma clang diagnostic pop
#endif
#endif // V8_LIBPLATFORM_TRACING_RECORDER_H_