Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Unified Diff: cc/surfaces/surface_reference_factory.h

Issue 2616403003: Replacing SurfaceReferenceBase and SequenceSurfaceReference with Closures (Closed)
Patch Set: c Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698