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

Side by Side Diff: base/memory/shared_memory_handle_mac.cc

Issue 1163943004: Make SharedMemoryHandle a class on Mac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@shared_memory_make_class3_base
Patch Set: Fix logic error. Created 5 years, 6 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/memory/shared_memory_handle.h"
6
7 #include <unistd.h>
Tom Sepez 2015/06/17 18:51:55 nit: system includes come first.
erikchen 2015/06/18 17:58:33 In the base/ module (and I think most of chrome),
8
9 #include "base/posix/eintr_wrapper.h"
10
11 #if defined(OS_MACOSX) && !defined(OS_IOS)
12 namespace base {
13
14 SharedMemoryHandle::SharedMemoryHandle() : type_(POSIX), file_descriptor_() {
15 }
16
17 SharedMemoryHandle::SharedMemoryHandle(const FileDescriptor& file_descriptor)
18 : type_(POSIX), file_descriptor_(file_descriptor) {
19 }
20
21 SharedMemoryHandle::SharedMemoryHandle(int fd, bool auto_close)
22 : type_(POSIX), file_descriptor_(fd, auto_close) {
23 }
24
25 SharedMemoryHandle::SharedMemoryHandle(const SharedMemoryHandle& handle)
26 : type_(handle.type_), file_descriptor_(handle.file_descriptor_) {
27 }
28
29 SharedMemoryHandle& SharedMemoryHandle::operator=(
30 const SharedMemoryHandle& handle) {
31 type_ = handle.type_;
Tom Sepez 2015/06/17 18:51:55 Does this make sense? Do you want to dup the file
erikchen 2015/06/18 17:58:33 Added the check to compare "this" and "&handle".
32 file_descriptor_ = handle.file_descriptor_;
33 return *this;
34 }
35
36 bool SharedMemoryHandle::operator==(const SharedMemoryHandle& handle) const {
37 return type_ == handle.type_ && file_descriptor_ == handle.file_descriptor_;
38 }
39
40 bool SharedMemoryHandle::operator!=(const SharedMemoryHandle& handle) const {
41 return !operator==(handle);
42 }
Tom Sepez 2015/06/17 18:51:55 nit: typically avoid invoking operators directly,
erikchen 2015/06/18 17:58:33 Done.
43
44 SharedMemoryHandle::Type SharedMemoryHandle::GetType() const {
45 return type_;
46 }
47
48 void SharedMemoryHandle::SetType(SharedMemoryHandle::Type type) {
49 DCHECK(type == POSIX || type == MACH);
50 type_ = type;
51 }
52
53 void SharedMemoryHandle::SetFileHandle(int fd, bool auto_close) {
54 DCHECK_EQ(type_, POSIX);
55 file_descriptor_.fd = fd;
56 file_descriptor_.auto_close = auto_close;
57 }
58
59 FileDescriptor* SharedMemoryHandle::GetFileDescriptor() {
60 DCHECK_EQ(type_, POSIX);
61 return &file_descriptor_;
62 }
63
64 const FileDescriptor* SharedMemoryHandle::GetFileDescriptor() const {
65 DCHECK_EQ(type_, POSIX);
66 return &file_descriptor_;
67 }
68
69 SharedMemoryHandle SharedMemoryHandle::Duplicate() const {
70 DCHECK_EQ(type_, POSIX);
71 int duped_handle = HANDLE_EINTR(dup(file_descriptor_.fd));
72 if (duped_handle < 0)
73 return SharedMemoryHandle();
74 return SharedMemoryHandle(duped_handle, true);
75 }
76
77 } // namespace base
78 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698