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 |