#ifndef UI_OZONE_PLATFORM_WAYLAND_COMMON_WAYLAND_OBJECT_H_
#define UI_OZONE_PLATFORM_WAYLAND_COMMON_WAYLAND_OBJECT_H_
#include <memory>
#include "base/check.h"
#include "ui/ozone/platform/wayland/common/wayland.h"
struct wl_proxy;
namespace ui {
class WaylandConnection;
}
namespace wl {
template <typename T>
struct ObjectTraits;
GlobalObjectFactory;
template <typename T>
class GlobalObjectRegistrar { … };
struct Deleter { … };
template <typename T>
class Object : public std::unique_ptr<T, Deleter> { … };
template <typename T>
wl::Object<T> Bind(wl_registry* registry, uint32_t name, uint32_t version) { … }
template <>
struct ObjectTraits<wl_proxy> { … };
bool CanBind(const std::string& interface,
uint32_t available_version,
uint32_t min_version,
uint32_t max_version);
}
#define DECLARE_WAYLAND_OBJECT_TRAITS(TYPE) …
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
DECLARE_WAYLAND_OBJECT_TRAITS(…)
#endif