| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_ | 5 #ifndef MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_ |
| 6 #define MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_ | 6 #define MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_ |
| 7 | 7 |
| 8 #include "build/build_config.h" | |
| 9 #include "mojo/edk/system/system_impl_export.h" | 8 #include "mojo/edk/system/system_impl_export.h" |
| 10 | 9 |
| 11 #if defined(OS_WIN) | |
| 12 #include <windows.h> | |
| 13 #endif | |
| 14 | |
| 15 namespace mojo { | 10 namespace mojo { |
| 16 namespace embedder { | 11 namespace embedder { |
| 17 | 12 |
| 18 // A |PlatformHandle| is a file descriptor on POSIX and a |HANDLE| on Windows. | 13 // A |PlatformHandle| is just a file descriptor on POSIX. |
| 19 #if defined(OS_POSIX) | |
| 20 struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandle { | 14 struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandle { |
| 21 PlatformHandle() : fd(-1) {} | 15 PlatformHandle() : fd(-1) {} |
| 22 explicit PlatformHandle(int fd) : fd(fd) {} | 16 explicit PlatformHandle(int fd) : fd(fd) {} |
| 23 | 17 |
| 24 void CloseIfNecessary(); | 18 void CloseIfNecessary(); |
| 25 | 19 |
| 26 bool is_valid() const { return fd != -1; } | 20 bool is_valid() const { return fd != -1; } |
| 27 | 21 |
| 28 int fd; | 22 int fd; |
| 29 }; | 23 }; |
| 30 #elif defined(OS_WIN) | |
| 31 struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandle { | |
| 32 PlatformHandle() : handle(INVALID_HANDLE_VALUE) {} | |
| 33 explicit PlatformHandle(HANDLE handle) : handle(handle) {} | |
| 34 | |
| 35 void CloseIfNecessary(); | |
| 36 | |
| 37 bool is_valid() const { return handle != INVALID_HANDLE_VALUE; } | |
| 38 | |
| 39 HANDLE handle; | |
| 40 }; | |
| 41 #else | |
| 42 #error "Platform not yet supported." | |
| 43 #endif | |
| 44 | 24 |
| 45 } // namespace embedder | 25 } // namespace embedder |
| 46 } // namespace mojo | 26 } // namespace mojo |
| 47 | 27 |
| 48 #endif // MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_ | 28 #endif // MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_ |
| OLD | NEW |