// Copyright 2013 The Flutter 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 FLUTTER_SHELL_COMMON_THREAD_HOST_H_ #define FLUTTER_SHELL_COMMON_THREAD_HOST_H_ #include #include "flutter/fml/macros.h" #include "flutter/fml/thread.h" namespace flutter { /// The collection of all the threads used by the engine. struct ThreadHost { enum Type { Platform = 1 << 0, UI = 1 << 1, GPU = 1 << 2, IO = 1 << 3, }; std::unique_ptr platform_thread; std::unique_ptr ui_thread; std::unique_ptr gpu_thread; std::unique_ptr io_thread; ThreadHost(); ThreadHost(ThreadHost&&); ThreadHost& operator=(ThreadHost&&) = default; ThreadHost(std::string name_prefix, uint64_t type_mask); ~ThreadHost(); void Reset(); }; } // namespace flutter #endif // FLUTTER_SHELL_COMMON_THREAD_HOST_H_