// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CODELABS_MOJO_EXAMPLES_MOJO_IMPLS_H_ #define CODELABS_MOJO_EXAMPLES_MOJO_IMPLS_H_ #include "base/task/single_thread_task_runner.h" #include "codelabs/mojo_examples/mojom/interface.mojom.h" #include "mojo/public/cpp/bindings/associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h" // The classes here are implementations of the mojo interfaces in this // directory that some of the examples use. They are global instances whose // receivers get bound to task runners associated with different task queues. // `ObjectAImpl` is bound to a task queue that is initially frozen, and // `ObjectBImpl` is bound to the current thread's default task runner, // associated with an unfrozen task queue. class ObjectAImpl : public codelabs::mojom::ObjectA { … }; // The global instance of this class is bound to an unfrozen task queue, but // doesn't receive any messages until the frozen task queue that manages // `ObjectAImpl`'s is finally unfroze, after a delay. class ObjectBImpl : public codelabs::mojom::ObjectB { … }; #endif // CODELABS_MOJO_EXAMPLES_MOJO_IMPLS_H_