buffet: Rename privetd::Daemon into privetd::Manager
privetd::Manager is going to be controlled from buffet::Manager
Also cc file with in-line code is split into cc and h files.
BUG=brillo:1161
TEST=`FEATURES=test emerge-gizmo buffet`
Change-Id: I63b3d71a1cda3c8efe13ff0fa6f3266b688e8f43
Reviewed-on: https://chromium-review.googlesource.com/276503
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
new file mode 100644
index 0000000..23e19d4
--- /dev/null
+++ b/buffet/privet/privet_manager.h
@@ -0,0 +1,107 @@
+// Copyright 2014 The Chromium OS 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 BUFFET_PRIVET_PRIVET_MANAGER_H_
+#define BUFFET_PRIVET_PRIVET_MANAGER_H_
+
+#include <memory>
+#include <set>
+#include <string>
+#include <vector>
+
+#include <base/memory/weak_ptr.h>
+#include <base/scoped_observer.h>
+#include <chromeos/daemons/dbus_daemon.h>
+
+#include "buffet/privet/cloud_delegate.h"
+
+namespace chromeos {
+namespace dbus_utils {
+class AsyncEventSequencer;
+}
+}
+
+namespace libwebserv {
+class ProtocolHandler;
+class Request;
+class Response;
+class Server;
+}
+
+namespace privetd {
+
+class PrivetdConfigParser;
+class DaemonState;
+class CloudDelegate;
+class DeviceDelegate;
+class SecurityManager;
+class ShillClient;
+class ApManagerClient;
+class WifiBootstrapManager;
+class PeerdClient;
+class PrivetHandler;
+
+class Manager : public chromeos::DBusServiceDaemon,
+ 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;
+
+ void RegisterDBusObjectsAsync(
+ chromeos::dbus_utils::AsyncEventSequencer* sequencer) override;
+
+ void OnShutdown(int* return_code) override;
+
+ void OnDeviceInfoChanged() override;
+
+ private:
+ void PrivetRequestHandler(std::unique_ptr<libwebserv::Request> request,
+ std::unique_ptr<libwebserv::Response> response);
+
+ void PrivetResponseHandler(std::unique_ptr<libwebserv::Response> response,
+ int status,
+ const base::DictionaryValue& output);
+
+ void HelloWorldHandler(std::unique_ptr<libwebserv::Request> request,
+ std::unique_ptr<libwebserv::Response> response);
+
+ void OnChanged();
+
+ void OnConnectivityChanged(bool online);
+
+ void OnProtocolHandlerConnected(
+ libwebserv::ProtocolHandler* protocol_handler);
+
+ void OnProtocolHandlerDisconnected(
+ libwebserv::ProtocolHandler* protocol_handler);
+
+ bool disable_security_;
+ bool enable_ping_;
+ 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_;
+ std::unique_ptr<SecurityManager> security_;
+ std::unique_ptr<ShillClient> shill_client_;
+ std::unique_ptr<ApManagerClient> ap_manager_client_;
+ std::unique_ptr<WifiBootstrapManager> wifi_bootstrap_manager_;
+ std::unique_ptr<PeerdClient> peerd_client_;
+ std::unique_ptr<PrivetHandler> privet_handler_;
+ std::unique_ptr<libwebserv::Server> web_server_;
+
+ ScopedObserver<CloudDelegate, CloudDelegate::Observer> cloud_observer_{this};
+
+ base::WeakPtrFactory<Manager> weak_ptr_factory_{this};
+ DISALLOW_COPY_AND_ASSIGN(Manager);
+};
+
+} // namespace privetd
+
+#endif // BUFFET_PRIVET_PRIVET_MANAGER_H_