Chromium Code Reviews| Index: components/discardable_memory/client/client_discardable_shared_memory_manager.h |
| diff --git a/components/discardable_memory/client/client_discardable_shared_memory_manager.h b/components/discardable_memory/client/client_discardable_shared_memory_manager.h |
| index 76215bc099f65ccd6cd36299f09ea531b29b1a4a..38859f50077268cfad9b28e8ecaf38260c905292 100644 |
| --- a/components/discardable_memory/client/client_discardable_shared_memory_manager.h |
| +++ b/components/discardable_memory/client/client_discardable_shared_memory_manager.h |
| @@ -15,7 +15,11 @@ |
| #include "base/trace_event/memory_dump_provider.h" |
| #include "components/discardable_memory/common/discardable_memory_export.h" |
| #include "components/discardable_memory/common/discardable_shared_memory_heap.h" |
| -#include "components/discardable_memory/common/discardable_shared_memory_id.h" |
| +#include "components/discardable_memory/public/interfaces/discardable_shared_memory_manager.mojom.h" |
| + |
| +namespace base { |
| +class SingleThreadTaskRunner; |
| +} |
| namespace discardable_memory { |
| @@ -25,20 +29,9 @@ class DISCARDABLE_MEMORY_EXPORT ClientDiscardableSharedMemoryManager |
| : public base::DiscardableMemoryAllocator, |
| public base::trace_event::MemoryDumpProvider { |
| public: |
| - class Delegate { |
| - public: |
| - virtual void AllocateLockedDiscardableSharedMemory( |
| - size_t size, |
| - DiscardableSharedMemoryId id, |
| - base::SharedMemoryHandle* handle) = 0; |
| - virtual void DeletedDiscardableSharedMemory( |
| - DiscardableSharedMemoryId id) = 0; |
| - |
| - protected: |
| - virtual ~Delegate() {} |
| - }; |
| - |
| - explicit ClientDiscardableSharedMemoryManager(Delegate* delegate); |
| + ClientDiscardableSharedMemoryManager( |
| + mojom::DiscardableSharedMemoryManagerPtrInfo info, |
| + base::SingleThreadTaskRunner* io_task_runner); |
|
dcheng
2016/11/25 00:07:08
Nit: pass this as a scoped_refptr and std::move()
Peng
2016/11/25 16:41:52
Done.
|
| ~ClientDiscardableSharedMemoryManager() override; |
| // Overridden from base::DiscardableMemoryAllocator: |
| @@ -70,14 +63,25 @@ class DISCARDABLE_MEMORY_EXPORT ClientDiscardableSharedMemoryManager |
| private: |
| std::unique_ptr<base::DiscardableSharedMemory> |
| - AllocateLockedDiscardableSharedMemory(size_t size, |
| - DiscardableSharedMemoryId id); |
| + AllocateLockedDiscardableSharedMemory(size_t size, int32_t id); |
| + void AllocateOnIO(size_t size, |
| + int32_t id, |
| + std::unique_ptr<base::DiscardableSharedMemory>* memory, |
| + base::WaitableEvent* event); |
| + void AllocateCompletedOnIO( |
| + std::unique_ptr<base::DiscardableSharedMemory>* memory, |
| + base::WaitableEvent* event, |
| + mojo::ScopedSharedBufferHandle mojo_handle); |
| + |
| + void DeletedDiscardableSharedMemory(int32_t id); |
| void MemoryUsageChanged(size_t new_bytes_allocated, |
| size_t new_bytes_free) const; |
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; |
| + std::unique_ptr<mojom::DiscardableSharedMemoryManagerPtr> manager_mojo_; |
|
dcheng
2016/11/28 18:29:14
Does this actually need to be in a unique_ptr?
Peng
2016/11/29 15:20:13
It has to be a std::unique_ptr<mojom::DiscardableS
|
| + |
| mutable base::Lock lock_; |
| - DiscardableSharedMemoryHeap heap_; |
| - Delegate* const delegate_; |
| + std::unique_ptr<DiscardableSharedMemoryHeap> heap_; |
| DISALLOW_COPY_AND_ASSIGN(ClientDiscardableSharedMemoryManager); |
| }; |