Index: cc/resources/resource_pool.h |
diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h |
index 20a66f06a4f964ef049f9a9d7060e9ef2cb047ae..a83ada335780ce20667b838c41bf058c104dfb16 100644 |
--- a/cc/resources/resource_pool.h |
+++ b/cc/resources/resource_pool.h |
@@ -77,14 +77,26 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider { |
uint64_t content_id() const { return content_id_; } |
void set_content_id(uint64_t content_id) { content_id_ = content_id; } |
+ base::TimeTicks last_usage() const { return last_usage_; } |
+ void set_last_usage(base::TimeTicks time) { last_usage_ = time; } |
+ |
private: |
explicit PoolResource(ResourceProvider* resource_provider) |
: ScopedResource(resource_provider), content_id_(0) {} |
uint64_t content_id_; |
+ base::TimeTicks last_usage_; |
}; |
void DidFinishUsingResource(scoped_ptr<PoolResource> resource); |
void DeleteResource(scoped_ptr<PoolResource> resource); |
+ void DeleteUnusedResource(scoped_ptr<PoolResource> resource); |
+ |
+ // Functions which manage periodic eviction of expired resources. |
+ void ScheduleEvictExpiredResources(); |
+ void EvictExpiredResources(); |
+ void EvictResourcesNotUsedSince(base::TimeTicks time_limit); |
+ bool HasEvictableResources() const; |
+ base::TimeTicks GetUsageTimeForLRUResource() const; |
ResourceProvider* resource_provider_; |
const GLenum target_; |
@@ -102,6 +114,12 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider { |
using ResourceMap = base::ScopedPtrMap<ResourceId, scoped_ptr<PoolResource>>; |
ResourceMap in_use_resources_; |
+ bool evict_expired_resources_pending_; |
+ base::TimeDelta resource_expiration_delay_; |
+ base::Closure evict_expired_resources_callback_; |
+ |
+ base::WeakPtrFactory<ResourcePool> weak_ptr_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ResourcePool); |
}; |