// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MOJO_EMBEDDER_PLATFORM_HANDLE_H_ #define MOJO_EMBEDDER_PLATFORM_HANDLE_H_ #include "build/build_config.h" #include "mojo/system/system_impl_export.h" #if defined(OS_WIN) #include #endif namespace mojo { namespace embedder { #if defined(OS_POSIX) struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandle { PlatformHandle() : fd(-1) {} explicit PlatformHandle(int fd) : fd(fd) {} void CloseIfNecessary(); bool is_valid() const { return fd != -1; } int fd; }; #elif defined(OS_WIN) struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandle { PlatformHandle() : handle(INVALID_HANDLE_VALUE) {} explicit PlatformHandle(HANDLE handle) : handle(handle) {} void CloseIfNecessary(); bool is_valid() const { return handle != INVALID_HANDLE_VALUE; } HANDLE handle; }; #else #error "Platform not yet supported." #endif } // namespace embedder } // namespace mojo #endif // MOJO_EMBEDDER_PLATFORM_HANDLE_H_