blob: 90f7157e8ca9ba18ae657dc4396b9d1994cd6741 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// *** PT-127 ****************************************************************
// This file is temporary, and provides a sufficient API to exercise
// the old fuchsia.tracelink FIDL API. It will go away once all providers have
// updated to use the new fuchsia.tracing.provider FIDL API (which is
// different from fuchsia.tracelink in name only).
// ***************************************************************************
#ifndef GARNET_BIN_TRACE_MANAGER_TRACELINK_MANAGER_H_
#define GARNET_BIN_TRACE_MANAGER_TRACELINK_MANAGER_H_
#include <fuchsia/tracelink/cpp/fidl.h>
#include <list>
#include "garnet/bin/trace_manager/config.h"
#include "garnet/bin/trace_manager/trace_manager.h"
#include "garnet/bin/trace_manager/trace_provider_bundle.h"
#include "garnet/bin/trace_manager/trace_session.h"
#include "lib/fidl/cpp/binding_set.h"
#include "lib/fidl/cpp/interface_ptr_set.h"
#include "lib/fidl/cpp/interface_request.h"
#include "src/lib/fxl/macros.h"
namespace tracing {
class TracelinkManager : public fuchsia::tracelink::Registry {
public:
TracelinkManager(TraceManager* trace_manager);
~TracelinkManager() override;
void RegisterTraceProviderWorker(
fidl::InterfaceHandle<fuchsia::tracelink::Provider> provider,
uint64_t pid, fidl::StringPtr name);
void RegisterTraceProviderDeprecated(
fidl::InterfaceHandle<fuchsia::tracelink::Provider> provider) override;
void RegisterTraceProvider(
fidl::InterfaceHandle<fuchsia::tracelink::Provider> provider,
uint64_t pid, std::string name) override;
void RegisterTraceProviderSynchronously(
fidl::InterfaceHandle<fuchsia::tracelink::Provider> provider,
uint64_t pid, std::string name,
RegisterTraceProviderSynchronouslyCallback callback) override;
TraceManager* const trace_manager_;
FXL_DISALLOW_COPY_AND_ASSIGN(TracelinkManager);
};
} // namespace tracing
#endif // GARNET_BIN_TRACE_MANAGER_TRACELINK_MANAGER_H_