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_UI_H_ 6 #define BASE_MESSAGE_LOOP_MESSAGE_PUMP_FOR_UI_H_ 7 8 // This header is a forwarding header to coalesce the various platform specific 9 // implementations of MessagePumpForUI. 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_ANDROID) && 0 16 #include "base/message_loop/message_pump_android.h" 17 #elif defined(OS_MACOSX) 18 #include "base/message_loop/message_pump.h" 19 #elif defined(OS_NACL) || defined(OS_AIX) 20 // No MessagePumpForUI, see below. 21 #elif defined(USE_GLIB) && !defined(ANDROID) 22 #include "base/message_loop/message_pump_glib.h" 23 #elif defined(OS_LINUX) || defined(OS_BSD)|| defined(ANDROID) 24 #include "base/message_loop/message_pump_libevent.h" 25 #elif defined(OS_FUCHSIA) 26 #include "base/message_loop/message_pump_fuchsia.h" 27 #endif 28 29 namespace base { 30 31 #if defined(OS_WIN) 32 // Windows defines it as-is. 33 using MessagePumpForUI = MessagePumpForUI; 34 #elif defined(OS_ANDROID) 35 #if 0 // Drop support for MessagePumpForUI for libchrome on Android targets. 36 // Android defines it as-is. 37 using MessagePumpForUI = MessagePumpForUI; 38 #endif 39 #elif defined(OS_MACOSX) 40 // MessagePumpForUI isn't bound to a specific impl on Mac. While each impl can 41 // be represented by a plain MessagePump: MessagePumpMac::Create() must be used 42 // to instantiate the right impl. 43 using MessagePumpForUI = MessagePump; 44 #elif defined(OS_NACL) || defined(OS_AIX) 45 // Currently NaCl and AIX don't have a MessagePumpForUI. 46 // TODO(abarth): Figure out if we need this. 47 #elif defined(USE_GLIB) && !defined(ANDROID) 48 using MessagePumpForUI = MessagePumpGlib; 49 #elif defined(OS_LINUX) || defined(OS_BSD) || defined(ANDROID) 50 using MessagePumpForUI = MessagePumpLibevent; 51 #elif defined(OS_FUCHSIA) 52 using MessagePumpForUI = MessagePumpFuchsia; 53 #else 54 #error Platform does not define MessagePumpForUI 55 #endif 56 57 } // namespace base 58 59 #endif // BASE_MESSAGE_LOOP_MESSAGE_PUMP_FOR_UI_H_ 60