blob: 91d2cc67e78ea14e89b05945b95e7344726779db [file] [log] [blame]
Avi Drissman4a8573c2022-09-09 19:35:541// Copyright 2015 The Chromium Authors
Scott Violetc668e3f92017-07-20 17:35:392// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_EXO_PARTS_H_
6#define CHROME_BROWSER_EXO_PARTS_H_
7
8#include <memory>
9
Lloyd Piqued507c5f2020-11-11 22:47:0510namespace ash {
11class ArcOverlayManager;
12}
13
Mitsuru Oshima51bf3d5472020-06-17 21:28:3414namespace exo {
15class WaylandServerController;
16}
17
Scott Violetc668e3f92017-07-20 17:35:3918class ExoParts {
19 public:
20 // Creates ExoParts. Returns null if exo should not be created.
21 static std::unique_ptr<ExoParts> CreateIfNecessary();
22
Peter Boström53c6c5952021-09-17 09:41:2623 ExoParts(const ExoParts&) = delete;
24 ExoParts& operator=(const ExoParts&) = delete;
25
Scott Violetc668e3f92017-07-20 17:35:3926 ~ExoParts();
27
28 private:
29 ExoParts();
30
Lloyd Piqued507c5f2020-11-11 22:47:0531 std::unique_ptr<ash::ArcOverlayManager> arc_overlay_manager_;
Mitsuru Oshima51bf3d5472020-06-17 21:28:3432 std::unique_ptr<exo::WaylandServerController> wayland_server_;
Scott Violetc668e3f92017-07-20 17:35:3933};
34
35#endif // CHROME_BROWSER_EXO_PARTS_H_