Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "components/discardable_memory/service/discardable_shared_memory_manage r_proxy.h" | |
| 6 | |
| 7 #include "components/discardable_memory/service/discardable_shared_memory_manage r.h" | |
| 8 #include "mojo/public/cpp/bindings/strong_binding.h" | |
| 9 #include "mojo/public/cpp/system/platform_handle.h" | |
| 10 | |
| 11 namespace discardable_memory { | |
| 12 | |
| 13 namespace { | |
| 14 int last_client_id = 0; | |
|
reveman
2016/11/11 20:17:27
Can this be in the ::discardable_memory::Discardab
Peng
2016/11/11 22:50:35
Done.
| |
| 15 } | |
| 16 | |
| 17 DiscardableSharedMemoryManagerProxy::DiscardableSharedMemoryManagerProxy() | |
| 18 : client_id_(++last_client_id) {} | |
| 19 | |
| 20 DiscardableSharedMemoryManagerProxy::~DiscardableSharedMemoryManagerProxy() { | |
| 21 ::discardable_memory::DiscardableSharedMemoryManager::current() | |
|
reveman
2016/11/11 20:17:26
Can this class have a pointer to the manager insta
Peng
2016/11/11 22:50:35
Done.
| |
| 22 ->ClientRemoved(client_id_); | |
| 23 } | |
| 24 | |
| 25 // static | |
| 26 void DiscardableSharedMemoryManagerProxy::Create( | |
| 27 mojom::DiscardableSharedMemoryManagerRequest request) { | |
| 28 mojo::MakeStrongBinding( | |
| 29 base::MakeUnique<DiscardableSharedMemoryManagerProxy>(), | |
| 30 std::move(request)); | |
| 31 } | |
| 32 | |
| 33 void DiscardableSharedMemoryManagerProxy::AllocateLockedDiscardableSharedMemory( | |
| 34 uint32_t size, | |
| 35 int32_t id, | |
| 36 const AllocateLockedDiscardableSharedMemoryCallback& callback) { | |
| 37 base::SharedMemoryHandle handle; | |
| 38 ::discardable_memory::DiscardableSharedMemoryManager::current() | |
| 39 ->AllocateLockedDiscardableSharedMemoryForClient(client_id_, size, id, | |
| 40 &handle); | |
| 41 mojo::ScopedSharedBufferHandle memory; | |
| 42 if (handle != base::SharedMemory::NULLHandle()) { | |
| 43 memory = mojo::WrapSharedMemoryHandle(handle, size, false /* ready_only */); | |
| 44 } | |
| 45 return callback.Run(std::move(memory)); | |
| 46 } | |
| 47 | |
| 48 void DiscardableSharedMemoryManagerProxy::DeletedDiscardableSharedMemory( | |
| 49 int32_t id) { | |
| 50 ::discardable_memory::DiscardableSharedMemoryManager::current() | |
| 51 ->ClientDeletedDiscardableSharedMemory(id, client_id_); | |
| 52 } | |
| 53 | |
| 54 } // namespace discardable_memory | |
| OLD | NEW |