Chromium Code Reviews| Index: cc/surfaces/surface_reference_factory.h |
| diff --git a/cc/surfaces/surface_reference_factory.h b/cc/surfaces/surface_reference_factory.h |
| index a4a32afa5667029acdef1c326bc267fbc5f76e92..c870a634affe0de3a5bafbc1c1e0c91cdf806d49 100644 |
| --- a/cc/surfaces/surface_reference_factory.h |
| +++ b/cc/surfaces/surface_reference_factory.h |
| @@ -5,24 +5,22 @@ |
| #ifndef CC_SURFACES_SURFACE_REFERENCE_FACTORY_H_ |
| #define CC_SURFACES_SURFACE_REFERENCE_FACTORY_H_ |
| +#include "base/callback_forward.h" |
| #include "base/memory/ref_counted.h" |
| #include "cc/surfaces/surface_id.h" |
| #include "cc/surfaces/surface_reference_owner.h" |
| namespace cc { |
| -class SurfaceReferenceBase; |
| - |
| -// Creates surface references. Returns an object of type |
| -// SurfaceReferenceBase which holds on to its corresponding |
| -// surface reference until destruction. The referenced surface |
| -// will be kept alive as long as there is a reference to it. |
| +// Creates surface references. The referenced surface will be kept alive as |
| +// long as there is a reference to it. |
| class SurfaceReferenceFactory |
| : public base::RefCountedThreadSafe<SurfaceReferenceFactory> { |
| public: |
| - virtual std::unique_ptr<SurfaceReferenceBase> CreateReference( |
| - SurfaceReferenceOwner* owner, |
| - const SurfaceId& surface_id) const = 0; |
| + // Creates a reference to the surface with the given surface id and returns |
| + // a closure that can be called to remove the reference. |
|
danakj
2017/01/10 21:12:06
"must be called"? It can only be called a single t
Fady Samuel
2017/01/10 21:33:07
Yes it can only be called a single time.
Saman Sami
2017/01/10 21:56:14
Done.
|
| + virtual base::Closure CreateReference(SurfaceReferenceOwner* owner, |
| + const SurfaceId& surface_id) const = 0; |
| SurfaceReferenceFactory() = default; |
|
danakj
2017/01/10 21:12:06
why does this class have a constructor?
Saman Sami
2017/01/10 21:56:14
"call to implicitly-deleted default constructor of
danakj
2017/01/11 15:25:28
Oh, there is no need for DISALLOW_COPY_AND_ASSIGN
Saman Sami
2017/01/11 16:19:16
But we have scoped_refptr<SurfaceReferenceFactory>
|
| @@ -30,11 +28,8 @@ class SurfaceReferenceFactory |
| virtual ~SurfaceReferenceFactory() = default; |
| private: |
| - friend class SurfaceReferenceBase; |
| friend class base::RefCountedThreadSafe<SurfaceReferenceFactory>; |
| - virtual void DestroyReference(SurfaceReferenceBase* surface_ref) const = 0; |
| - |
| DISALLOW_COPY_AND_ASSIGN(SurfaceReferenceFactory); |
| }; |