Commit 87b38b5f authored by Abhijeet Kandalkar's avatar Abhijeet Kandalkar Committed by Commit Bot

Convert perfetto_service.mojom to new Mojo types (3/n)

This CL converts usage of
1. |ProducerHostRequest| to |mojo::PendingReceiver<mojom::ProducerHost>|
2. |StrongBindingSet| to |UniqueReceiverSet|

Bug: 955171, 978694
Change-Id: I06953f0494b3504901faa5e6cc65c8b59fd30298
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1831921
Commit-Queue: Abhijeet Kandalkar <abhijeet@igalia.com>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701666}
parent 29d9858f
......@@ -79,14 +79,14 @@ void PerfettoService::BindReceiver(
void PerfettoService::ConnectToProducerHost(
mojo::PendingRemote<mojom::ProducerClient> producer_client,
mojom::ProducerHostRequest producer_host_request) {
mojo::PendingReceiver<mojom::ProducerHost> producer_host_receiver) {
auto new_producer = std::make_unique<ProducerHost>();
uint32_t producer_pid = receivers_.current_context();
new_producer->Initialize(std::move(producer_client), service_.get(),
base::StrCat({mojom::kPerfettoProducerNamePrefix,
base::NumberToString(producer_pid)}));
producer_bindings_.AddBinding(std::move(new_producer),
std::move(producer_host_request));
producer_receivers_.Add(std::move(new_producer),
std::move(producer_host_receiver));
}
void PerfettoService::AddActiveServicePid(base::ProcessId pid) {
......
......@@ -11,6 +11,7 @@
#include "base/macros.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/strong_binding_set.h"
#include "mojo/public/cpp/bindings/unique_receiver_set.h"
#include "services/service_manager/public/cpp/identity.h"
#include "services/tracing/perfetto/consumer_host.h"
#include "services/tracing/public/cpp/perfetto/task_runner.h"
......@@ -42,7 +43,8 @@ class PerfettoService : public mojom::PerfettoService {
// mojom::PerfettoService implementation.
void ConnectToProducerHost(
mojo::PendingRemote<mojom::ProducerClient> producer_client,
mojom::ProducerHostRequest producer_host) override;
mojo::PendingReceiver<mojom::ProducerHost> producer_host_receiver)
override;
perfetto::TracingService* GetService() const;
......@@ -79,7 +81,7 @@ class PerfettoService : public mojom::PerfettoService {
PerfettoTaskRunner perfetto_task_runner_;
std::unique_ptr<perfetto::TracingService> service_;
mojo::ReceiverSet<mojom::PerfettoService, uint32_t> receivers_;
mojo::StrongBindingSet<mojom::ProducerHost> producer_bindings_;
mojo::UniqueReceiverSet<mojom::ProducerHost> producer_receivers_;
std::set<ConsumerHost::TracingSession*> tracing_sessions_; // Not owned.
std::set<base::ProcessId> active_service_pids_;
bool active_service_pids_initialized_ = false;
......
......@@ -38,14 +38,16 @@ void ProducerClient::Connect(
mojo::PendingRemote<mojom::PerfettoService> perfetto_service) {
mojo::PendingRemote<mojom::ProducerClient> client;
auto client_receiver = client.InitWithNewPipeAndPassReceiver();
mojom::ProducerHostPtrInfo host_info;
mojo::PendingRemote<mojom::ProducerHost> producer_host_remote;
mojo::Remote<mojom::PerfettoService>(std::move(perfetto_service))
->ConnectToProducerHost(std::move(client), mojo::MakeRequest(&host_info));
->ConnectToProducerHost(
std::move(client),
producer_host_remote.InitWithNewPipeAndPassReceiver());
task_runner()->GetOrCreateTaskRunner()->PostTask(
FROM_HERE,
base::BindOnce(&ProducerClient::BindClientAndHostPipesOnSequence,
base::Unretained(this), std::move(client_receiver),
std::move(host_info)));
std::move(producer_host_remote)));
}
void ProducerClient::BindClientAndHostPipesForTesting(
......
......@@ -140,7 +140,7 @@ interface ProducerClient {
// should implement ProducerClient for callbacks and pass along.
interface PerfettoService {
ConnectToProducerHost(pending_remote<ProducerClient> producer_client,
ProducerHost& producer_host);
pending_receiver<ProducerHost> producer_host_receiver);
};
// The policy for filling the trace buffer.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment