Index: content/browser/gpu/shader_disk_cache.h |
diff --git a/content/browser/gpu/shader_disk_cache.h b/content/browser/gpu/shader_disk_cache.h |
deleted file mode 100644 |
index fd978c96169d8ff9486afce034b8591fcd545020..0000000000000000000000000000000000000000 |
--- a/content/browser/gpu/shader_disk_cache.h |
+++ /dev/null |
@@ -1,161 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CONTENT_BROWSER_GPU_SHADER_DISK_CACHE_H_ |
-#define CONTENT_BROWSER_GPU_SHADER_DISK_CACHE_H_ |
- |
-#include <stdint.h> |
- |
-#include <map> |
-#include <queue> |
-#include <string> |
- |
-#include "base/files/file_path.h" |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/threading/thread_checker.h" |
-#include "content/common/content_export.h" |
-#include "net/disk_cache/disk_cache.h" |
- |
-namespace content { |
- |
-class ShaderCacheFactory; |
-class ShaderDiskCacheEntry; |
-class ShaderDiskReadHelper; |
-class ShaderClearHelper; |
- |
-// ShaderDiskCache is the interface to the on disk cache for |
-// GL shaders. |
-class CONTENT_EXPORT ShaderDiskCache |
- : public base::RefCounted<ShaderDiskCache> { |
- public: |
- using ShaderLoadedCallback = |
- base::Callback<void(const std::string&, const std::string&)>; |
- |
- void set_shader_loaded_callback(const ShaderLoadedCallback& callback) { |
- shader_loaded_callback_ = callback; |
- } |
- |
- // Store the |shader| into the cache under |key|. |
- void Cache(const std::string& key, const std::string& shader); |
- |
- // Clear a range of entries. This supports unbounded deletes in either |
- // direction by using null Time values for either |begin_time| or |end_time|. |
- // The return value is a net error code. If this method returns |
- // ERR_IO_PENDING, the |completion_callback| will be invoked when the |
- // operation completes. |
- int Clear( |
- const base::Time begin_time, |
- const base::Time end_time, |
- const net::CompletionCallback& completion_callback); |
- |
- // Sets a callback for when the cache is available. If the cache is |
- // already available the callback will not be called and net::OK is returned. |
- // If the callback is set net::ERR_IO_PENDING is returned and the callback |
- // will be executed when the cache is available. |
- int SetAvailableCallback(const net::CompletionCallback& callback); |
- |
- // Returns the number of elements currently in the cache. |
- int32_t Size(); |
- |
- // Set a callback notification for when all current entries have been |
- // written to the cache. |
- // The return value is a net error code. If this method returns |
- // ERR_IO_PENDING, the |callback| will be invoked when all entries have |
- // been written to the cache. |
- int SetCacheCompleteCallback(const net::CompletionCallback& callback); |
- |
- private: |
- friend class base::RefCounted<ShaderDiskCache>; |
- friend class ShaderDiskCacheEntry; |
- friend class ShaderDiskReadHelper; |
- friend class ShaderCacheFactory; |
- |
- ShaderDiskCache(ShaderCacheFactory* factory, |
- const base::FilePath& cache_path); |
- ~ShaderDiskCache(); |
- |
- void Init(scoped_refptr<base::SingleThreadTaskRunner> cache_task_runner); |
- void CacheCreatedCallback(int rv); |
- |
- disk_cache::Backend* backend() { return backend_.get(); } |
- |
- void EntryComplete(ShaderDiskCacheEntry* entry); |
- void ReadComplete(); |
- |
- ShaderCacheFactory* factory_; |
- bool cache_available_; |
- base::FilePath cache_path_; |
- bool is_initialized_; |
- net::CompletionCallback available_callback_; |
- net::CompletionCallback cache_complete_callback_; |
- ShaderLoadedCallback shader_loaded_callback_; |
- |
- std::unique_ptr<disk_cache::Backend> backend_; |
- |
- std::unique_ptr<ShaderDiskReadHelper> helper_; |
- std::unordered_map<ShaderDiskCacheEntry*, |
- std::unique_ptr<ShaderDiskCacheEntry>> |
- entries_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ShaderDiskCache); |
-}; |
- |
-// ShaderCacheFactory maintains a cache of ShaderDiskCache objects |
-// so we only create one per profile directory. |
-class CONTENT_EXPORT ShaderCacheFactory |
- : NON_EXPORTED_BASE(public base::ThreadChecker) { |
- public: |
- explicit ShaderCacheFactory( |
- scoped_refptr<base::SingleThreadTaskRunner> cache_task_runner); |
- ~ShaderCacheFactory(); |
- |
- // Clear the shader disk cache for the given |path|. This supports unbounded |
- // deletes in either direction by using null Time values for either |
- // |begin_time| or |end_time|. The |callback| will be executed when the |
- // clear is complete. |
- void ClearByPath(const base::FilePath& path, |
- const base::Time& begin_time, |
- const base::Time& end_time, |
- const base::Closure& callback); |
- |
- // Retrieve the shader disk cache for the provided |client_id|. |
- scoped_refptr<ShaderDiskCache> Get(int32_t client_id); |
- |
- // Set the |path| to be used for the disk cache for |client_id|. |
- void SetCacheInfo(int32_t client_id, const base::FilePath& path); |
- |
- // Remove the path mapping for |client_id|. |
- void RemoveCacheInfo(int32_t client_id); |
- |
- // Set the provided |cache| into the cache map for the given |path|. |
- void AddToCache(const base::FilePath& path, ShaderDiskCache* cache); |
- |
- // Remove the provided |path| from our cache map. |
- void RemoveFromCache(const base::FilePath& path); |
- |
- private: |
- friend class ShaderClearHelper; |
- |
- scoped_refptr<base::SingleThreadTaskRunner> cache_task_runner_; |
- |
- scoped_refptr<ShaderDiskCache> GetByPath(const base::FilePath& path); |
- void CacheCleared(const base::FilePath& path); |
- |
- using ShaderCacheMap = std::map<base::FilePath, ShaderDiskCache*>; |
- ShaderCacheMap shader_cache_map_; |
- |
- using ClientIdToPathMap = std::map<int32_t, base::FilePath>; |
- ClientIdToPathMap client_id_to_path_map_; |
- |
- using ShaderClearQueue = std::queue<std::unique_ptr<ShaderClearHelper>>; |
- using ShaderClearMap = std::map<base::FilePath, ShaderClearQueue>; |
- ShaderClearMap shader_clear_map_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ShaderCacheFactory); |
-}; |
- |
-} // namespace content |
- |
-#endif // CONTENT_BROWSER_GPU_SHADER_DISK_CACHE_H_ |