// Copyright 2015 The Chromium 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 COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ #define COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_ #include "base/macros.h" #include "components/arc/connection_holder.h" namespace arc { namespace mojom { // Instead of including components/arc/common/arc_bridge.mojom.h, list all the // instance classes here for faster build. class AccessibilityHelperHost; class AccessibilityHelperInstance; class AppHost; class AppInstance; class AudioHost; class AudioInstance; class AuthHost; class AuthInstance; class BackupSettingsInstance; class BluetoothHost; class BluetoothInstance; class BootPhaseMonitorHost; class BootPhaseMonitorInstance; class CastReceiverInstance; class CertStoreHost; class CertStoreInstance; class ClipboardHost; class ClipboardInstance; class CrashCollectorHost; class CrashCollectorInstance; class EnterpriseReportingHost; class EnterpriseReportingInstance; class FileSystemHost; class FileSystemInstance; class ImeHost; class ImeInstance; class IntentHelperHost; class IntentHelperInstance; class KioskHost; class KioskInstance; class LockScreenInstance; class MetricsHost; class MetricsInstance; class MidisHost; class MidisInstance; class NetHost; class NetInstance; class NotificationsHost; class NotificationsInstance; class ObbMounterHost; class ObbMounterInstance; class OemCryptoHost; class OemCryptoInstance; class PolicyHost; class PolicyInstance; class PowerHost; class PowerInstance; class PrintHost; class PrintInstance; class ProcessInstance; class RotationLockInstance; class ScreenCaptureHost; class ScreenCaptureInstance; class StorageManagerInstance; class TimerInstance; class TimerHost; class TracingInstance; class TtsHost; class TtsInstance; class UsbHostHost; class UsbHostInstance; class VideoHost; class VideoInstance; class VoiceInteractionArcHomeHost; class VoiceInteractionArcHomeInstance; class VoiceInteractionFrameworkHost; class VoiceInteractionFrameworkInstance; class VolumeMounterHost; class VolumeMounterInstance; class WakeLockHost; class WakeLockInstance; class WallpaperHost; class WallpaperInstance; } // namespace mojom // Holds Mojo channels which proxy to ARC side implementation. The actual // instances are set/removed via ArcBridgeHostImpl. class ArcBridgeService { public: ArcBridgeService(); ~ArcBridgeService(); ConnectionHolder* accessibility_helper() { return &accessibility_helper_; } ConnectionHolder* app() { return &app_; } ConnectionHolder* audio() { return &audio_; } ConnectionHolder* auth() { return &auth_; } ConnectionHolder* backup_settings() { return &backup_settings_; } ConnectionHolder* bluetooth() { return &bluetooth_; } ConnectionHolder* boot_phase_monitor() { return &boot_phase_monitor_; } ConnectionHolder* cast_receiver() { return &cast_receiver_; } ConnectionHolder* cert_store() { return &cert_store_; } ConnectionHolder* clipboard() { return &clipboard_; } ConnectionHolder* crash_collector() { return &crash_collector_; } ConnectionHolder* enterprise_reporting() { return &enterprise_reporting_; } ConnectionHolder* file_system() { return &file_system_; } ConnectionHolder* ime() { return &ime_; } ConnectionHolder* intent_helper() { return &intent_helper_; } ConnectionHolder* kiosk() { return &kiosk_; } ConnectionHolder* lock_screen() { return &lock_screen_; } ConnectionHolder* metrics() { return &metrics_; } ConnectionHolder* midis() { return &midis_; } ConnectionHolder* net() { return &net_; } ConnectionHolder* notifications() { return ¬ifications_; } ConnectionHolder* obb_mounter() { return &obb_mounter_; } ConnectionHolder* oemcrypto() { return &oemcrypto_; } ConnectionHolder* policy() { return &policy_; } ConnectionHolder* power() { return &power_; } ConnectionHolder* print() { return &print_; } ConnectionHolder* process() { return &process_; } ConnectionHolder* rotation_lock() { return &rotation_lock_; } ConnectionHolder* screen_capture() { return &screen_capture_; } ConnectionHolder* storage_manager() { return &storage_manager_; } ConnectionHolder* timer() { return &timer_; } ConnectionHolder* tracing() { return &tracing_; } ConnectionHolder* tts() { return &tts_; } ConnectionHolder* usb_host() { return &usb_host_; } ConnectionHolder* video() { return &video_; } ConnectionHolder* voice_interaction_arc_home() { return &voice_interaction_arc_home_; } ConnectionHolder* voice_interaction_framework() { return &voice_interaction_framework_; } ConnectionHolder* volume_mounter() { return &volume_mounter_; } ConnectionHolder* wake_lock() { return &wake_lock_; } ConnectionHolder* wallpaper() { return &wallpaper_; } private: ConnectionHolder accessibility_helper_; ConnectionHolder app_; ConnectionHolder audio_; ConnectionHolder auth_; ConnectionHolder backup_settings_; ConnectionHolder bluetooth_; ConnectionHolder boot_phase_monitor_; ConnectionHolder cast_receiver_; ConnectionHolder cert_store_; ConnectionHolder clipboard_; ConnectionHolder crash_collector_; ConnectionHolder enterprise_reporting_; ConnectionHolder file_system_; ConnectionHolder ime_; ConnectionHolder intent_helper_; ConnectionHolder kiosk_; ConnectionHolder lock_screen_; ConnectionHolder metrics_; ConnectionHolder midis_; ConnectionHolder net_; ConnectionHolder notifications_; ConnectionHolder obb_mounter_; ConnectionHolder oemcrypto_; ConnectionHolder policy_; ConnectionHolder power_; ConnectionHolder print_; ConnectionHolder process_; ConnectionHolder rotation_lock_; ConnectionHolder screen_capture_; ConnectionHolder storage_manager_; ConnectionHolder timer_; ConnectionHolder tracing_; ConnectionHolder tts_; ConnectionHolder usb_host_; ConnectionHolder video_; ConnectionHolder voice_interaction_arc_home_; ConnectionHolder voice_interaction_framework_; ConnectionHolder volume_mounter_; ConnectionHolder wake_lock_; ConnectionHolder wallpaper_; DISALLOW_COPY_AND_ASSIGN(ArcBridgeService); }; } // namespace arc #endif // COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_