blob: 75c5b7cc3b12f4bdec37193db11b9c7e9caffba4 [file] [log] [blame] [edit]
// 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.
#include "src/performance/trace_manager/trace_provider_bundle.h"
#include <iostream>
#include <src/lib/fxl/strings/string_printf.h>
namespace tracing {
TraceProviderBundle::TraceProviderBundle(
fidl::ClientEnd<fuchsia_tracing_provider::Provider> provider, uint32_t id, zx_koid_t pid,
const std::string& name, async_dispatcher_t* dispatcher)
: provider(std::move(provider), dispatcher, this), id(id), pid(pid), name(name) {}
void TraceProviderBundle::on_fidl_error(fidl::UnbindInfo info) {
if (on_unbound_) {
on_unbound_(info);
}
}
std::string TraceProviderBundle::ToString() const {
// The pid and name should be present, so we don't try to get fancy with
// the formatting if it turns out they're not.
return fxl::StringPrintf("#%u {%lu:%s}", id, pid, name.c_str());
}
std::ostream& operator<<(std::ostream& out, const TraceProviderBundle& bundle) {
return out << bundle.ToString();
}
} // namespace tracing