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_VECTOR_H_ 6#define MOJO_EMBEDDER_PLATFORM_HANDLE_VECTOR_H_ 7 8#include <vector> 9 10#include "base/memory/scoped_ptr.h" 11#include "mojo/embedder/platform_handle.h" 12#include "mojo/embedder/platform_handle_utils.h" 13#include "mojo/system/system_impl_export.h" 14 15namespace mojo { 16namespace embedder { 17 18typedef std::vector<PlatformHandle> PlatformHandleVector; 19 20// A deleter (for use with |scoped_ptr|) which closes all handles and then 21// |delete|s the |PlatformHandleVector|. 22struct MOJO_SYSTEM_IMPL_EXPORT PlatformHandleVectorDeleter { 23 void operator()(PlatformHandleVector* platform_handles) const { 24 CloseAllPlatformHandles(platform_handles); 25 delete platform_handles; 26 } 27}; 28 29typedef scoped_ptr<PlatformHandleVector, PlatformHandleVectorDeleter> 30 ScopedPlatformHandleVectorPtr; 31 32} // namespace embedder 33} // namespace mojo 34 35#endif // MOJO_EMBEDDER_PLATFORM_HANDLE_VECTOR_H_ 36