Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / mojo / edk / embedder / platform_handle.h
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
3 // found in the LICENSE file.
4
5 #ifndef MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_
6 #define MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_
7
8 #include "build/build_config.h"
9 #include "mojo/edk/system/system_impl_export.h"
10
11 #if defined(OS_WIN)
12 #include <windows.h>
13 #endif
14
15 namespace mojo {
16 namespace embedder {
17
18 #if defined(OS_POSIX)
19 struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandle {
20   PlatformHandle() : fd(-1) {}
21   explicit PlatformHandle(int fd) : fd(fd) {}
22
23   void CloseIfNecessary();
24
25   bool is_valid() const { return fd != -1; }
26
27   int fd;
28 };
29 #elif defined(OS_WIN)
30 struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandle {
31   PlatformHandle() : handle(INVALID_HANDLE_VALUE) {}
32   explicit PlatformHandle(HANDLE handle) : handle(handle) {}
33
34   void CloseIfNecessary();
35
36   bool is_valid() const { return handle != INVALID_HANDLE_VALUE; }
37
38   HANDLE handle;
39 };
40 #else
41 #error "Platform not yet supported."
42 #endif
43
44 }  // namespace embedder
45 }  // namespace mojo
46
47 #endif  // MOJO_EDK_EMBEDDER_PLATFORM_HANDLE_H_