IndexedDB: fsync after transactions.
[chromium-blink-merge.git] / cc / surfaces / surface_manager.h
blobfe12dbfc5d01edfd1afeb15865128e0ebbfbe284
1 // Copyright 2014 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 CC_SURFACES_SURFACE_MANAGER_H_
6 #define CC_SURFACES_SURFACE_MANAGER_H_
8 #include "base/containers/hash_tables.h"
9 #include "base/macros.h"
10 #include "cc/surfaces/surfaces_export.h"
12 namespace gfx { class Size; }
14 namespace cc {
15 class CompositorFrame;
16 class Surface;
18 class CC_SURFACES_EXPORT SurfaceManager {
19 public:
20 SurfaceManager();
21 ~SurfaceManager();
23 int RegisterAndAllocateIDForSurface(Surface* surface);
24 void DeregisterSurface(int surface_id);
26 Surface* GetSurfaceForID(int surface_id);
28 private:
29 typedef base::hash_map<int, Surface*> SurfaceMap;
30 SurfaceMap surface_map_;
32 int next_surface_id_;
34 DISALLOW_COPY_AND_ASSIGN(SurfaceManager);
37 } // namespace cc
39 #endif // CC_SURFACES_SURFACE_MANAGER_H_