1// Copyright 2014 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_UTILS_H_ 6#define MOJO_EMBEDDER_PLATFORM_HANDLE_UTILS_H_ 7 8#include "mojo/embedder/platform_handle.h" 9#include "mojo/embedder/scoped_platform_handle.h" 10#include "mojo/system/system_impl_export.h" 11 12namespace mojo { 13namespace embedder { 14 15// Closes all the |PlatformHandle|s in the given container. 16template <typename PlatformHandleContainer> 17MOJO_SYSTEM_IMPL_EXPORT inline void CloseAllPlatformHandles( 18 PlatformHandleContainer* platform_handles) { 19 for (typename PlatformHandleContainer::iterator it = 20 platform_handles->begin(); 21 it != platform_handles->end(); 22 ++it) 23 it->CloseIfNecessary(); 24} 25 26// Duplicates the given |PlatformHandle| (which must be valid). (Returns an 27// invalid |ScopedPlatformHandle| on failure.) 28MOJO_SYSTEM_IMPL_EXPORT ScopedPlatformHandle DuplicatePlatformHandle( 29 PlatformHandle platform_handle); 30 31} // namespace embedder 32} // namespace mojo 33 34#endif // MOJO_EMBEDDER_PLATFORM_HANDLE_UTILS_H_ 35