Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Unified Diff: chromeos/arc/bridge/arc_bridge_service.h

Issue 1412863004: arc-bridge: Add the ARC Bridge Service (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/arc/bridge/arc_bridge_service.h
diff --git a/chromeos/arc/bridge/arc_bridge_service.h b/chromeos/arc/bridge/arc_bridge_service.h
new file mode 100644
index 0000000000000000000000000000000000000000..085209c20fd79821fa8268dfb2ecc996773d1bd5
--- /dev/null
+++ b/chromeos/arc/bridge/arc_bridge_service.h
@@ -0,0 +1,84 @@
+// Copyright (c) 2012 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 CHROMEOS_ARC_BRIDGE_ARC_BRIDGE_SERVICE_H_
+#define CHROMEOS_ARC_BRIDGE_ARC_BRIDGE_SERVICE_H_
+
+#include "base/macros.h"
+#include "base/observer_list.h"
+#include "chromeos/arc/libarcbridge/arc_bridge.h"
+#include "chromeos/dbus/dbus_method_call_status.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+class Profile;
oshima 2015/10/23 20:29:45 chromeos/ should not depend on Profile
Luis Héctor Chávez 2015/10/27 00:37:47 Done.
+
+namespace arc {
+
+class ArcBridgeService : public KeyedService, public BridgeHostEndpoint {
satorux1 2015/10/23 06:10:58 class comment is missing. please describe what thi
Luis Héctor Chávez 2015/10/27 00:37:47 Done.
+ public:
+ class Observer {
+ public:
+ // Called whenever an instance start request has finished.
+ virtual void OnInstanceStarted(bool success) {}
+
+ // Called when an instance is ready for interaction.
+ virtual void OnInstanceReady() {}
+
+ // Called when an instance has stopped. This is not called if
+ // OnInstanceStarted() was called with |success| = false.
+ virtual void OnInstanceStopped() {}
+
+ protected:
+ virtual ~Observer() {}
+ };
+
+ explicit ArcBridgeService(Profile* profile);
+ virtual ~ArcBridgeService();
+
+ // HandleStartup() should be called upon profile startup. This will only
+ // launch an instance if the instance service is available and it is enabled.
+ void HandleStartup();
+
+ // Shuts down the running instance, if any. This is safe to call even if
+ // there is no instance running.
+ void Shutdown();
+
+ // Add or remove observers.
satorux1 2015/10/23 06:10:58 nit: Adds or removes
Luis Héctor Chávez 2015/10/27 00:37:48 Done.
+ void AddObserver(Observer* observer);
+ void RemoveObserver(Observer* observer);
+
+ // Methods to access preferences.
+ bool IsEnabled() { return enabled_; }
+
+ // TODO(lhchavez): Setup a persistent Prefs object to store the setting.
+ void SetEnabled(bool enabled) { enabled_ = enabled; }
+
+ bool IsRunning() const { return running_; }
satorux1 2015/10/23 06:10:58 function comment is missing. // Returns true if t
Luis Héctor Chávez 2015/10/27 00:37:47 Done.
+
+ private:
+ // DBus callbacks.
+ void OnInstanceStarted(chromeos::DBusMethodCallStatus status, bool success);
+ void OnInstanceStopped(chromeos::DBusMethodCallStatus status);
+
+ // arc::BridgeHostEndpoint overrides:
+ void OnInstanceReady() override;
+ void OnPong() override;
+
+ // List of observers to notify of state changes.
+ // Makes sure list is empty on destruction.
+ base::ObserverList<Observer, true> observer_list_;
+
+ // TODO(lhchavez): Move to a real preference.
+ bool enabled_;
+
+ bool connected_;
+ bool running_;
satorux1 2015/10/23 06:10:58 enabled_, connected_, running_ sound similar to me
Luis Héctor Chávez 2015/10/27 00:37:47 Changed to an enum.
+ Profile* profile_;
+
+ DISALLOW_COPY_AND_ASSIGN(ArcBridgeService);
+};
+
+} // namespace arc
+
+#endif // CHROMEOS_ARC_BRIDGE_ARC_BRIDGE_SERVICE_H_

Powered by Google App Engine
This is Rietveld 408576698