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