Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(695)

Side by Side Diff: base/memory/shared_memory_handle.h

Issue 2849633002: Get rid of base::SharedMemory::NULLHandle(); (Closed)
Patch Set: Rebase. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/memory/shared_memory.h ('k') | base/memory/shared_memory_handle_mac.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef BASE_MEMORY_SHARED_MEMORY_HANDLE_H_ 5 #ifndef BASE_MEMORY_SHARED_MEMORY_HANDLE_H_
6 #define BASE_MEMORY_SHARED_MEMORY_HANDLE_H_ 6 #define BASE_MEMORY_SHARED_MEMORY_HANDLE_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 // Makes a Mach-based SharedMemoryHandle of the given size. On error, 76 // Makes a Mach-based SharedMemoryHandle of the given size. On error,
77 // subsequent calls to IsValid() return false. 77 // subsequent calls to IsValid() return false.
78 explicit SharedMemoryHandle(mach_vm_size_t size); 78 explicit SharedMemoryHandle(mach_vm_size_t size);
79 79
80 // Makes a Mach-based SharedMemoryHandle from |memory_object|, a named entry 80 // Makes a Mach-based SharedMemoryHandle from |memory_object|, a named entry
81 // in the task with process id |pid|. The memory region has size |size|. 81 // in the task with process id |pid|. The memory region has size |size|.
82 SharedMemoryHandle(mach_port_t memory_object, 82 SharedMemoryHandle(mach_port_t memory_object,
83 mach_vm_size_t size, 83 mach_vm_size_t size,
84 base::ProcessId pid); 84 base::ProcessId pid);
85 85
86 // Comparison operators.
87 bool operator==(const SharedMemoryHandle& handle) const;
88 bool operator!=(const SharedMemoryHandle& handle) const;
89
90 // Duplicates the underlying OS resources. 86 // Duplicates the underlying OS resources.
91 SharedMemoryHandle Duplicate() const; 87 SharedMemoryHandle Duplicate() const;
92 88
93 // Exposed so that the SharedMemoryHandle can be transported between 89 // Exposed so that the SharedMemoryHandle can be transported between
94 // processes. 90 // processes.
95 mach_port_t GetMemoryObject() const; 91 mach_port_t GetMemoryObject() const;
96 92
97 // Returns false on a failure to determine the size. On success, populates the 93 // Returns false on a failure to determine the size. On success, populates the
98 // output variable |size|. 94 // output variable |size|.
99 bool GetSize(size_t* size) const; 95 bool GetSize(size_t* size) const;
100 96
101 // The SharedMemoryHandle must be valid. 97 // The SharedMemoryHandle must be valid.
102 // Returns whether the SharedMemoryHandle was successfully mapped into memory. 98 // Returns whether the SharedMemoryHandle was successfully mapped into memory.
103 // On success, |memory| is an output variable that contains the start of the 99 // On success, |memory| is an output variable that contains the start of the
104 // mapped memory. 100 // mapped memory.
105 bool MapAt(off_t offset, size_t bytes, void** memory, bool read_only); 101 bool MapAt(off_t offset, size_t bytes, void** memory, bool read_only);
106 #elif defined(OS_WIN) 102 #elif defined(OS_WIN)
107 SharedMemoryHandle(HANDLE h, base::ProcessId pid); 103 SharedMemoryHandle(HANDLE h, base::ProcessId pid);
108 104
109 // Comparison operators.
110 bool operator==(const SharedMemoryHandle& handle) const;
111 bool operator!=(const SharedMemoryHandle& handle) const;
112
113 // Whether |pid_| is the same as the current process's id. 105 // Whether |pid_| is the same as the current process's id.
114 bool BelongsToCurrentProcess() const; 106 bool BelongsToCurrentProcess() const;
115 107
116 // Whether handle_ needs to be duplicated into the destination process when 108 // Whether handle_ needs to be duplicated into the destination process when
117 // an instance of this class is passed over a Chrome IPC channel. 109 // an instance of this class is passed over a Chrome IPC channel.
118 bool NeedsBrokering() const; 110 bool NeedsBrokering() const;
119 111
120 HANDLE GetHandle() const; 112 HANDLE GetHandle() const;
121 base::ProcessId GetPID() const; 113 base::ProcessId GetPID() const;
122 #else 114 #else
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 // Defaults to |false|. 182 // Defaults to |false|.
191 bool ownership_passes_to_ipc_; 183 bool ownership_passes_to_ipc_;
192 #else 184 #else
193 FileDescriptor file_descriptor_; 185 FileDescriptor file_descriptor_;
194 #endif 186 #endif
195 }; 187 };
196 188
197 } // namespace base 189 } // namespace base
198 190
199 #endif // BASE_MEMORY_SHARED_MEMORY_HANDLE_H_ 191 #endif // BASE_MEMORY_SHARED_MEMORY_HANDLE_H_
OLDNEW
« no previous file with comments | « base/memory/shared_memory.h ('k') | base/memory/shared_memory_handle_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698