blob: 962446b7896404dd1e751d96ba89e808c950d495 [file] [log] [blame]
// Copyright 2016 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.
#ifndef GARNET_BIN_TRACE_MANAGER_TRACE_PROVIDER_BUNDLE_H_
#define GARNET_BIN_TRACE_MANAGER_TRACE_PROVIDER_BUNDLE_H_
#include <stdint.h>
#include <iosfwd>
#include <map>
#include <string>
#include <fuchsia/tracing/provider/cpp/fidl.h>
namespace tracing {
struct TraceProviderBundle {
TraceProviderBundle(fuchsia::tracing::provider::ProviderPtr provider, uint32_t id, zx_koid_t pid,
const std::string& name);
~TraceProviderBundle() = default;
TraceProviderBundle(const TraceProviderBundle& value) = delete;
TraceProviderBundle& operator=(const TraceProviderBundle&) = delete;
TraceProviderBundle(const TraceProviderBundle&& value) = delete;
TraceProviderBundle& operator=(const TraceProviderBundle&&) = delete;
std::string ToString() const;
fuchsia::tracing::provider::ProviderPtr provider;
uint32_t id;
zx_koid_t pid;
const std::string name;
};
struct TraceProviderSpec {
uint32_t buffer_size_megabytes;
};
using TraceProviderSpecMap = std::map<std::string, TraceProviderSpec>;
std::ostream& operator<<(std::ostream& out, const TraceProviderBundle& bundle);
} // namespace tracing
#endif // GARNET_BIN_TRACE_MANAGER_TRACE_PROVIDER_BUNDLE_H_