// 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/instance_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 AccessibilityHelperInstance; class AppInstance; class AudioInstance; class AuthInstance; class BluetoothInstance; class BootPhaseMonitorInstance; class ClipboardInstance; class CrashCollectorInstance; class EnterpriseReportingInstance; class FileSystemInstance; class ImeInstance; class IntentHelperInstance; class KioskInstance; class MetricsInstance; class NetInstance; class NotificationsInstance; class ObbMounterInstance; class PolicyInstance; class PowerInstance; class PrintInstance; class ProcessInstance; class StorageManagerInstance; class TtsInstance; class VideoInstance; 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(); InstanceHolder* accessibility_helper() { return &accessibility_helper_; } InstanceHolder* app() { return &app_; } InstanceHolder* audio() { return &audio_; } InstanceHolder* auth() { return &auth_; } InstanceHolder* bluetooth() { return &bluetooth_; } InstanceHolder* boot_phase_monitor() { return &boot_phase_monitor_; } InstanceHolder* clipboard() { return &clipboard_; } InstanceHolder* crash_collector() { return &crash_collector_; } InstanceHolder* enterprise_reporting() { return &enterprise_reporting_; } InstanceHolder* file_system() { return &file_system_; } InstanceHolder* ime() { return &ime_; } InstanceHolder* intent_helper() { return &intent_helper_; } InstanceHolder* kiosk() { return &kiosk_; } InstanceHolder* metrics() { return &metrics_; } InstanceHolder* net() { return &net_; } InstanceHolder* notifications() { return ¬ifications_; } InstanceHolder* obb_mounter() { return &obb_mounter_; } InstanceHolder* policy() { return &policy_; } InstanceHolder* power() { return &power_; } InstanceHolder* print() { return &print_; } InstanceHolder* process() { return &process_; } InstanceHolder* storage_manager() { return &storage_manager_; } InstanceHolder* tts() { return &tts_; } InstanceHolder* video() { return &video_; } InstanceHolder* wallpaper() { return &wallpaper_; } private: InstanceHolder accessibility_helper_; InstanceHolder app_; InstanceHolder audio_; InstanceHolder auth_; InstanceHolder bluetooth_; InstanceHolder boot_phase_monitor_; InstanceHolder clipboard_; InstanceHolder crash_collector_; InstanceHolder enterprise_reporting_; InstanceHolder file_system_; InstanceHolder ime_; InstanceHolder intent_helper_; InstanceHolder kiosk_; InstanceHolder metrics_; InstanceHolder net_; InstanceHolder notifications_; InstanceHolder obb_mounter_; InstanceHolder policy_; InstanceHolder power_; InstanceHolder print_; InstanceHolder process_; InstanceHolder storage_manager_; InstanceHolder tts_; InstanceHolder video_; InstanceHolder wallpaper_; DISALLOW_COPY_AND_ASSIGN(ArcBridgeService); }; } // namespace arc #endif // COMPONENTS_ARC_ARC_BRIDGE_SERVICE_H_