// 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 AppfuseHost; class AppfuseInstance; 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 DiskQuotaHost; class DiskQuotaInstance; class EnterpriseReportingHost; class EnterpriseReportingInstance; class FileSystemHost; class FileSystemInstance; class ImeHost; class ImeInstance; class InputMethodManagerHost; class InputMethodManagerInstance; class IntentHelperHost; class IntentHelperInstance; class KioskHost; class KioskInstance; class LockScreenInstance; class MediaSessionInstance; class MetricsHost; class MetricsInstance; class MidisHost; class MidisInstance; class NetHost; class NetInstance; class ObbMounterHost; class ObbMounterInstance; class OemCryptoHost; class OemCryptoInstance; class PipHost; class PipInstance; class PolicyHost; class PolicyInstance; class PowerHost; class PowerInstance; class PrintHost; class PrintInstance; class ProcessInstance; class PropertyInstance; class RotationLockInstance; class ScreenCaptureHost; class ScreenCaptureInstance; class StorageManagerInstance; class TimerHost; class TimerInstance; 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* appfuse() { return &appfuse_; } 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* disk_quota() { return &disk_quota_; } ConnectionHolder* enterprise_reporting() { return &enterprise_reporting_; } ConnectionHolder* file_system() { return &file_system_; } ConnectionHolder* ime() { return &ime_; } ConnectionHolder* input_method_manager() { return &input_method_manager_; } ConnectionHolder* intent_helper() { return &intent_helper_; } ConnectionHolder* kiosk() { return &kiosk_; } ConnectionHolder* lock_screen() { return &lock_screen_; } ConnectionHolder* media_session() { return &media_session_; } ConnectionHolder* metrics() { return &metrics_; } ConnectionHolder* midis() { return &midis_; } ConnectionHolder* net() { return &net_; } ConnectionHolder* obb_mounter() { return &obb_mounter_; } ConnectionHolder* oemcrypto() { return &oemcrypto_; } ConnectionHolder* pip() { return &pip_; } ConnectionHolder* policy() { return &policy_; } ConnectionHolder* power() { return &power_; } ConnectionHolder* print() { return &print_; } ConnectionHolder* process() { return &process_; } ConnectionHolder* property() { return &property_; } 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 appfuse_; 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 disk_quota_; ConnectionHolder enterprise_reporting_; ConnectionHolder file_system_; ConnectionHolder ime_; ConnectionHolder input_method_manager_; ConnectionHolder intent_helper_; ConnectionHolder kiosk_; ConnectionHolder lock_screen_; ConnectionHolder media_session_; ConnectionHolder metrics_; ConnectionHolder midis_; ConnectionHolder net_; ConnectionHolder obb_mounter_; ConnectionHolder oemcrypto_; ConnectionHolder pip_; ConnectionHolder policy_; ConnectionHolder power_; ConnectionHolder print_; ConnectionHolder process_; ConnectionHolder property_; 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_