buffet: Start privet logic
Initialize privetd::Manager from buffet::Manager.
Added flag disable_privet to disable local APIs.
CloudDelegate still uses D-Bus to communicate with buffet.
BUG=brillo:1161
TEST=`FEATURES=test emerge-gizmo buffet`
Change-Id: Ic5d687f0e45d9be3c487a2f2b2de354f4b437441
Reviewed-on: https://chromium-review.googlesource.com/276602
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/privet/privet_manager.h b/buffet/privet/privet_manager.h
index 23e19d4..8130b9d 100644
--- a/buffet/privet/privet_manager.h
+++ b/buffet/privet/privet_manager.h
@@ -12,10 +12,14 @@
#include <base/memory/weak_ptr.h>
#include <base/scoped_observer.h>
-#include <chromeos/daemons/dbus_daemon.h>
#include "buffet/privet/cloud_delegate.h"
+namespace buffet {
+class CommandManager;
+class DeviceRegistrationInfo;
+}
+
namespace chromeos {
namespace dbus_utils {
class AsyncEventSequencer;
@@ -31,34 +35,43 @@
namespace privetd {
-class PrivetdConfigParser;
-class DaemonState;
-class CloudDelegate;
-class DeviceDelegate;
-class SecurityManager;
-class ShillClient;
class ApManagerClient;
-class WifiBootstrapManager;
+class CloudDelegate;
+class DaemonState;
+class DeviceDelegate;
class PeerdClient;
class PrivetHandler;
+class PrivetdConfigParser;
+class SecurityManager;
+class ShillClient;
+class WifiBootstrapManager;
-class Manager : public chromeos::DBusServiceDaemon,
- public CloudDelegate::Observer {
+class Manager : public CloudDelegate::Observer {
public:
- Manager(bool disable_security,
- bool enable_ping,
- const std::set<std::string>& device_whitelist,
- const base::FilePath& config_path,
- const base::FilePath& state_path);
- ~Manager() override;
+ struct Options {
+ bool disable_privet{false};
+ bool disable_security{false};
+ bool enable_ping{false};
+ std::set<std::string> device_whitelist;
+ };
- void RegisterDBusObjectsAsync(
- chromeos::dbus_utils::AsyncEventSequencer* sequencer) override;
+ Manager();
+ ~Manager();
- void OnShutdown(int* return_code) override;
+ void Start(const Options& options,
+ const scoped_refptr<dbus::Bus>& bus,
+ chromeos::dbus_utils::AsyncEventSequencer* sequencer);
+
+ void OnShutdown();
void OnDeviceInfoChanged() override;
+ privetd::WifiBootstrapManager* GetWifiBootstrapManager() {
+ return wifi_bootstrap_manager_.get();
+ }
+
+ privetd::SecurityManager* GetSecurityManager() { return security_.get(); }
+
private:
void PrivetRequestHandler(std::unique_ptr<libwebserv::Request> request,
std::unique_ptr<libwebserv::Response> response);
@@ -80,11 +93,8 @@
void OnProtocolHandlerDisconnected(
libwebserv::ProtocolHandler* protocol_handler);
- bool disable_security_;
- bool enable_ping_;
+ bool disable_security_{false};
std::unique_ptr<PrivetdConfigParser> parser_;
- std::set<std::string> device_whitelist_;
- base::FilePath config_path_;
std::unique_ptr<DaemonState> state_store_;
std::unique_ptr<CloudDelegate> cloud_;
std::unique_ptr<DeviceDelegate> device_;