// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_GFX_X_FUTURE_H_ #define UI_GFX_X_FUTURE_H_ #include "base/component_export.h" #include "ui/gfx/x/xproto_types.h" namespace x11 { class Connection; class Event; class COMPONENT_EXPORT(X11) FutureImpl { … }; class COMPONENT_EXPORT(X11) FutureBase { … }; // An Future wraps an asynchronous response from the X11 server. The // response may be waited-for with Sync(), or asynchronously handled by // installing a response handler using OnResponse(). template <typename Reply> class Future : public FutureBase { … }; // Sync() specialization for requests that don't generate replies. The returned // response will only contain an error if there was one. template <> inline Response<void> Future<void>::Sync() { … } // OnResponse() specialization for requests that don't generate replies. The // response argument to |callback| will only contain an error if there was one. template <> inline void Future<void>::OnResponse(Callback callback) { … } } // namespace x11 #endif // UI_GFX_X_FUTURE_H_