Revert "Reland c91b178b07b0d - Delete dead signin code (SigninGlobalError)"
[chromium-blink-merge.git] / components / view_manager / surfaces / surfaces_state.h
blob9bc26ea5f03020e0d3423e3800f1afb6ffaf0037
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_VIEW_MANAGER_SURFACES_SURFACES_STATE_H_
6 #define COMPONENTS_VIEW_MANAGER_SURFACES_SURFACES_STATE_H_
8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "cc/surfaces/surface_manager.h"
11 #include "components/view_manager/surfaces/surfaces_scheduler.h"
13 namespace cc {
14 class SurfaceManager;
15 } // namespace cc
17 namespace surfaces {
19 // The SurfacesState object is an object global to the View Manager app that
20 // holds the SurfaceManager, SurfacesScheduler and allocates new Surfaces
21 // namespaces. This object lives on the main thread of the View Manager.
22 // TODO(rjkroege, fsamuel): This object will need to change to support multiple
23 // displays.
24 class SurfacesState : public base::RefCounted<SurfacesState> {
25 public:
26 SurfacesState();
28 uint32_t next_id_namespace() { return next_id_namespace_++; }
30 cc::SurfaceManager* manager() { return &manager_; }
32 SurfacesScheduler* scheduler() { return &scheduler_; }
34 private:
35 friend class base::RefCounted<SurfacesState>;
36 ~SurfacesState();
38 // A Surface ID is an unsigned 64-bit int where the high 32-bits are generated
39 // by the Surfaces service, and the low 32-bits are generated by the process
40 // that requested the Surface.
41 uint32_t next_id_namespace_;
42 cc::SurfaceManager manager_;
43 SurfacesScheduler scheduler_;
45 DISALLOW_COPY_AND_ASSIGN(SurfacesState);
48 } // namespace surfaces
50 #endif // COMPONENTS_VIEW_MANAGER_SURFACES_SURFACES_STATE_H_