OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Helper class used to find the RenderViewObservers for a given RenderView. | 5 // Helper class used to find the RenderViewObservers for a given RenderView. |
6 // | 6 // |
7 // Example usage: | 7 // Example usage: |
8 // | 8 // |
9 // class MyRVO : public RenderViewObserver, | 9 // class MyRVO : public RenderViewObserver, |
10 // public RenderViewObserverTracker<MyRVO> { | 10 // public RenderViewObserverTracker<MyRVO> { |
11 // ... | 11 // ... |
12 // }; | 12 // }; |
13 // | 13 // |
14 // MyRVO::MyRVO(RenderView* render_view) | 14 // MyRVO::MyRVO(RenderView* render_view) |
15 // : RenderViewObserver(render_view), | 15 // : RenderViewObserver(render_view), |
16 // RenderViewObserverTracker<MyRVO>(render_view) { | 16 // RenderViewObserverTracker<MyRVO>(render_view) { |
17 // ... | 17 // ... |
18 // } | 18 // } |
19 // | 19 // |
20 // void SomeFunction(RenderView* rv) { | 20 // void SomeFunction(RenderView* rv) { |
21 // MyRVO* my_rvo = new MyRVO(rv); | 21 // MyRVO* my_rvo = new MyRVO(rv); |
22 // MyRVO* my_rvo_tracked = MyRVO::Get(rv); | 22 // MyRVO* my_rvo_tracked = MyRVO::Get(rv); |
23 // // my_rvo == my_rvo_tracked | 23 // // my_rvo == my_rvo_tracked |
24 // } | 24 // } |
25 | 25 |
26 #ifndef CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_TRACKER_H_ | 26 #ifndef CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_TRACKER_H_ |
27 #define CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_TRACKER_H_ | 27 #define CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_TRACKER_H_ |
28 #pragma once | |
29 | 28 |
30 #include <map> | 29 #include <map> |
31 | 30 |
32 #include "base/lazy_instance.h" | 31 #include "base/lazy_instance.h" |
33 | 32 |
34 namespace content { | 33 namespace content { |
35 | 34 |
36 class RenderView; | 35 class RenderView; |
37 | 36 |
38 template <class T> | 37 template <class T> |
(...skipping 20 matching lines...) Expand all Loading... |
59 DISALLOW_COPY_AND_ASSIGN(RenderViewObserverTracker<T>); | 58 DISALLOW_COPY_AND_ASSIGN(RenderViewObserverTracker<T>); |
60 }; | 59 }; |
61 | 60 |
62 template <class T> | 61 template <class T> |
63 base::LazyInstance<std::map<const RenderView*, T*> > | 62 base::LazyInstance<std::map<const RenderView*, T*> > |
64 RenderViewObserverTracker<T>::render_view_map_ = LAZY_INSTANCE_INITIALIZER; | 63 RenderViewObserverTracker<T>::render_view_map_ = LAZY_INSTANCE_INITIALIZER; |
65 | 64 |
66 } // namespace content | 65 } // namespace content |
67 | 66 |
68 #endif // CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_TRACKER_H_ | 67 #endif // CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_TRACKER_H_ |
OLD | NEW |