blob: 9a2b7fc9bc6bd82d04f34b8b6522b6698daee931 [file] [log] [blame]
// Copyright 2013 The Chromium 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 SERVICES_VIZ_PRIVILEGED_INTERFACES_COMPOSITING_EXTERNAL_BEGIN_FRAME_CONTROLLER_MOJOM_BLINK_H_
#define SERVICES_VIZ_PRIVILEGED_INTERFACES_COMPOSITING_EXTERNAL_BEGIN_FRAME_CONTROLLER_MOJOM_BLINK_H_
#include <stdint.h>
#include <limits>
#include <type_traits>
#include <utility>
#include "base/callback.h"
#include "base/macros.h"
#include "base/optional.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#if BUILDFLAG(MOJO_TRACE_ENABLED)
#include "base/trace_event/trace_event.h"
#endif
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"
#include "services/viz/privileged/interfaces/compositing/external_begin_frame_controller.mojom-shared.h"
#include "services/viz/privileged/interfaces/compositing/external_begin_frame_controller.mojom-blink-forward.h"
#include "services/viz/public/interfaces/compositing/begin_frame_args.mojom-blink-forward.h"
#include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h"
#include "mojo/public/cpp/bindings/lib/wtf_hash_util.h"
#include "third_party/blink/renderer/platform/wtf/hash_functions.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "mojo/public/cpp/bindings/associated_interface_ptr_info.h"
#include "mojo/public/cpp/bindings/associated_interface_request.h"
#include "mojo/public/cpp/bindings/interface_ptr.h"
#include "mojo/public/cpp/bindings/interface_request.h"
#include "mojo/public/cpp/bindings/lib/control_message_handler.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"
#include "mojo/public/cpp/bindings/thread_safe_interface_ptr.h"
#include "mojo/public/cpp/bindings/lib/native_enum_serialization.h"
#include "mojo/public/cpp/bindings/lib/native_struct_serialization.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace viz {
namespace mojom {
namespace blink {
class ExternalBeginFrameControllerProxy;
template <typename ImplRefTraits>
class ExternalBeginFrameControllerStub;
class ExternalBeginFrameControllerRequestValidator;
// @generated_from: viz.mojom.ExternalBeginFrameController
class ExternalBeginFrameController
: public ExternalBeginFrameControllerInterfaceBase {
public:
static const char Name_[];
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasSyncMethods_ = false;
using Base_ = ExternalBeginFrameControllerInterfaceBase;
using Proxy_ = ExternalBeginFrameControllerProxy;
template <typename ImplRefTraits>
using Stub_ = ExternalBeginFrameControllerStub<ImplRefTraits>;
using RequestValidator_ = ExternalBeginFrameControllerRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kIssueExternalBeginFrameMinVersion = 0,
};
virtual ~ExternalBeginFrameController() {}
// @generated_from: viz.mojom.ExternalBeginFrameController.IssueExternalBeginFrame
virtual void IssueExternalBeginFrame(const viz::BeginFrameArgs& args) = 0;
};
class ExternalBeginFrameControllerClientProxy;
template <typename ImplRefTraits>
class ExternalBeginFrameControllerClientStub;
class ExternalBeginFrameControllerClientRequestValidator;
// @generated_from: viz.mojom.ExternalBeginFrameControllerClient
class ExternalBeginFrameControllerClient
: public ExternalBeginFrameControllerClientInterfaceBase {
public:
static const char Name_[];
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasSyncMethods_ = false;
using Base_ = ExternalBeginFrameControllerClientInterfaceBase;
using Proxy_ = ExternalBeginFrameControllerClientProxy;
template <typename ImplRefTraits>
using Stub_ = ExternalBeginFrameControllerClientStub<ImplRefTraits>;
using RequestValidator_ = ExternalBeginFrameControllerClientRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kOnNeedsBeginFramesMinVersion = 0,
kOnDisplayDidFinishFrameMinVersion = 0,
};
virtual ~ExternalBeginFrameControllerClient() {}
// @generated_from: viz.mojom.ExternalBeginFrameControllerClient.OnNeedsBeginFrames
virtual void OnNeedsBeginFrames(bool needs_begin_frames) = 0;
// @generated_from: viz.mojom.ExternalBeginFrameControllerClient.OnDisplayDidFinishFrame
virtual void OnDisplayDidFinishFrame(const viz::BeginFrameAck& ack) = 0;
};
class ExternalBeginFrameControllerProxy
: public ExternalBeginFrameController {
public:
using InterfaceType = ExternalBeginFrameController;
explicit ExternalBeginFrameControllerProxy(mojo::MessageReceiverWithResponder* receiver);
void IssueExternalBeginFrame(const viz::BeginFrameArgs& args) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class ExternalBeginFrameControllerClientProxy
: public ExternalBeginFrameControllerClient {
public:
using InterfaceType = ExternalBeginFrameControllerClient;
explicit ExternalBeginFrameControllerClientProxy(mojo::MessageReceiverWithResponder* receiver);
void OnNeedsBeginFrames(bool needs_begin_frames) final;
void OnDisplayDidFinishFrame(const viz::BeginFrameAck& ack) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class ExternalBeginFrameControllerStubDispatch {
public:
static bool Accept(ExternalBeginFrameController* impl, mojo::Message* message);
static bool AcceptWithResponder(
ExternalBeginFrameController* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<ExternalBeginFrameController>>
class ExternalBeginFrameControllerStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
ExternalBeginFrameControllerStub() {}
~ExternalBeginFrameControllerStub() override {}
void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
ImplPointerType& sink() { return sink_; }
bool Accept(mojo::Message* message) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return ExternalBeginFrameControllerStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return ExternalBeginFrameControllerStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class ExternalBeginFrameControllerClientStubDispatch {
public:
static bool Accept(ExternalBeginFrameControllerClient* impl, mojo::Message* message);
static bool AcceptWithResponder(
ExternalBeginFrameControllerClient* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<ExternalBeginFrameControllerClient>>
class ExternalBeginFrameControllerClientStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
ExternalBeginFrameControllerClientStub() {}
~ExternalBeginFrameControllerClientStub() override {}
void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
ImplPointerType& sink() { return sink_; }
bool Accept(mojo::Message* message) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return ExternalBeginFrameControllerClientStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return ExternalBeginFrameControllerClientStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class ExternalBeginFrameControllerRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class ExternalBeginFrameControllerClientRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
} // namespace blink
} // namespace mojom
} // namespace viz
namespace mojo {
} // namespace mojo
#endif // SERVICES_VIZ_PRIVILEGED_INTERFACES_COMPOSITING_EXTERNAL_BEGIN_FRAME_CONTROLLER_MOJOM_BLINK_H_
/* Metadata comment
eyJtZXRhIjogW3siZW5kIjogMjU4OSwgImJlZ2luIjogMjU2MSwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogInZpei5tb2pvbS5FeHRlcm5hbEJlZ2luRnJhbWVDb250
cm9sbGVyIn19LCB7ImVuZCI6IDM0MzIsICJiZWdpbiI6IDM0MDksICJlZGdlIjogIiUva3l0aGUv
ZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29y
cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdl
IjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJ2aXoubW9qb20uRXh0ZXJuYWxCZWdpbkZyYW1lQ29u
dHJvbGxlci5Jc3N1ZUV4dGVybmFsQmVnaW5GcmFtZSJ9fSwgeyJlbmQiOiAzNzcwLCAiYmVnaW4i
OiAzNzM2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y
X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidml6Lm1v
am9tLkV4dGVybmFsQmVnaW5GcmFtZUNvbnRyb2xsZXJDbGllbnQifX0sIHsiZW5kIjogNDY4NCwg
ImJlZ2luIjogNDY2NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjog
ImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjog
InZpei5tb2pvbS5FeHRlcm5hbEJlZ2luRnJhbWVDb250cm9sbGVyQ2xpZW50Lk9uTmVlZHNCZWdp
bkZyYW1lcyJ9fSwgeyJlbmQiOiA0ODQ2LCAiYmVnaW4iOiA0ODIzLCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNv
cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAidml6Lm1vam9tLkV4dGVybmFsQmVnaW5GcmFtZUNv
bnRyb2xsZXJDbGllbnQuT25EaXNwbGF5RGlkRmluaXNoRnJhbWUifX1dLCAidHlwZSI6ICJreXRo
ZTAifQ==
*/