1 // Copyright 2018 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 BASE_MESSAGE_LOOP_MESSAGE_PUMP_FOR_IO_H_
6 #define BASE_MESSAGE_LOOP_MESSAGE_PUMP_FOR_IO_H_
7 
8 // This header is a forwarding header to coalesce the various platform specific
9 // types representing MessagePumpForIO.
10 
11 #include "build/build_config.h"
12 
13 #if defined(OS_WIN)
14 #include "base/message_loop/message_pump_win.h"
15 #elif defined(OS_IOS)
16 #include "base/message_loop/message_pump_io_ios.h"
17 #elif defined(OS_NACL_SFI)
18 #include "base/message_loop/message_pump_default.h"
19 #elif defined(OS_FUCHSIA)
20 #include "base/message_loop/message_pump_fuchsia.h"
21 #elif defined(OS_POSIX)
22 #include "base/message_loop/message_pump_libevent.h"
23 #endif
24 
25 namespace base {
26 
27 #if defined(OS_WIN)
28 // Windows defines it as-is.
29 using MessagePumpForIO = MessagePumpForIO;
30 #elif defined(OS_IOS)
31 using MessagePumpForIO = MessagePumpIOSForIO;
32 #elif defined(OS_NACL_SFI)
33 using MessagePumpForIO = MessagePumpDefault;
34 #elif defined(OS_FUCHSIA)
35 using MessagePumpForIO = MessagePumpFuchsia;
36 #elif defined(OS_POSIX)
37 using MessagePumpForIO = MessagePumpLibevent;
38 #else
39 #error Platform does not define MessagePumpForIO
40 #endif
41 
42 }  // namespace base
43 
44 #endif  // BASE_MESSAGE_LOOP_MESSAGE_PUMP_FOR_IO_H_
45