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_EMBEDDER_PLATFORM_HANDLE_H_ 6#define MOJO_EMBEDDER_PLATFORM_HANDLE_H_ 7 8#include "build/build_config.h" 9#include "mojo/system/system_impl_export.h" 10 11#if defined(OS_WIN) 12#include <windows.h> 13#endif 14 15namespace mojo { 16namespace embedder { 17 18#if defined(OS_POSIX) 19struct 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) 30struct 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_EMBEDDER_PLATFORM_HANDLE_H_ 48