| Index: components/discardable_memory/service/discardable_shared_memory_manager.h
|
| diff --git a/components/discardable_memory/service/discardable_shared_memory_manager.h b/components/discardable_memory/service/discardable_shared_memory_manager.h
|
| index 7df57de9c51a1c0e16e2263c64ad913e452ad10f..7ccadf18a44b3b1c68a540e9f4647b0d3778bd44 100644
|
| --- a/components/discardable_memory/service/discardable_shared_memory_manager.h
|
| +++ b/components/discardable_memory/service/discardable_shared_memory_manager.h
|
| @@ -27,7 +27,7 @@
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/trace_event/memory_dump_provider.h"
|
| #include "components/discardable_memory/common/discardable_memory_export.h"
|
| -#include "components/discardable_memory/public/interfaces/discardable_shared_memory_manager.mojom.h"
|
| +#include "components/discardable_memory/common/discardable_shared_memory_id.h"
|
|
|
| namespace discardable_memory {
|
|
|
| @@ -44,14 +44,8 @@
|
| DiscardableSharedMemoryManager();
|
| ~DiscardableSharedMemoryManager() override;
|
|
|
| - // Create a sigleton instance.
|
| - static DiscardableSharedMemoryManager* CreateInstance();
|
| -
|
| // Returns a singleton instance.
|
| - static DiscardableSharedMemoryManager* GetInstance();
|
| -
|
| - // Bind the manager to a mojo interface request.
|
| - void Bind(mojom::DiscardableSharedMemoryManagerRequest request);
|
| + static DiscardableSharedMemoryManager* current();
|
|
|
| // Overridden from base::DiscardableMemoryAllocator:
|
| std::unique_ptr<base::DiscardableMemory> AllocateLockedDiscardableMemory(
|
| @@ -61,17 +55,20 @@
|
| bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
|
| base::trace_event::ProcessMemoryDump* pmd) override;
|
|
|
| + // TODO(penghuang): Get ride of the |process_handle| when we switch to mojo.
|
| // This allocates a discardable memory segment for |process_handle|.
|
| // A valid shared memory handle is returned on success.
|
| void AllocateLockedDiscardableSharedMemoryForClient(
|
| + base::ProcessHandle process_handle,
|
| int client_id,
|
| size_t size,
|
| - int32_t id,
|
| + DiscardableSharedMemoryId id,
|
| base::SharedMemoryHandle* shared_memory_handle);
|
|
|
| // Call this to notify the manager that client process associated with
|
| // |client_id| has deleted discardable memory segment with |id|.
|
| - void ClientDeletedDiscardableSharedMemory(int32_t id, int client_id);
|
| + void ClientDeletedDiscardableSharedMemory(DiscardableSharedMemoryId id,
|
| + int client_id);
|
|
|
| // Call this to notify the manager that client associated with |client_id|
|
| // has been removed. The manager will use this to release memory segments
|
| @@ -114,12 +111,15 @@
|
| // base::MemoryCoordinatorClient implementation:
|
| void OnMemoryStateChange(base::MemoryState state) override;
|
|
|
| + // TODO(penghuang): Get ride of the |process_handle| when we switch to mojo.
|
| void AllocateLockedDiscardableSharedMemory(
|
| + base::ProcessHandle process_handle,
|
| int client_id,
|
| size_t size,
|
| - int32_t id,
|
| + DiscardableSharedMemoryId id,
|
| base::SharedMemoryHandle* shared_memory_handle);
|
| - void DeletedDiscardableSharedMemory(int32_t id, int client_id);
|
| + void DeletedDiscardableSharedMemory(DiscardableSharedMemoryId id,
|
| + int client_id);
|
| void OnMemoryPressure(
|
| base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level);
|
| void ReduceMemoryUsageUntilWithinMemoryLimit();
|
| @@ -131,16 +131,15 @@
|
| virtual base::Time Now() const;
|
| virtual void ScheduleEnforceMemoryPolicy();
|
|
|
| - int32_t next_client_id_;
|
| -
|
| base::Lock lock_;
|
| - using MemorySegmentMap =
|
| - base::hash_map<int32_t, scoped_refptr<MemorySegment>>;
|
| - using ClientMap = base::hash_map<int, MemorySegmentMap>;
|
| + typedef base::hash_map<DiscardableSharedMemoryId,
|
| + scoped_refptr<MemorySegment>>
|
| + MemorySegmentMap;
|
| + typedef base::hash_map<int, MemorySegmentMap> ClientMap;
|
| ClientMap clients_;
|
| // Note: The elements in |segments_| are arranged in such a way that they form
|
| // a heap. The LRU memory segment always first.
|
| - using MemorySegmentVector = std::vector<scoped_refptr<MemorySegment>>;
|
| + typedef std::vector<scoped_refptr<MemorySegment>> MemorySegmentVector;
|
| MemorySegmentVector segments_;
|
| size_t default_memory_limit_;
|
| size_t memory_limit_;
|
|
|