// 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 <windows.h>
#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_
