libweave: Cleanup enum to string conversion
Conversion should be done using weave::EnumToString
and weave::StringToEnum.
enum_to_string header moved public interface.
BUG=brillo:1242
TEST='FEATURES=test emerge-gizmo buffet'
Change-Id: I96af61ef0b263d4ec149b14a7c9055bd51bf2e4c
Reviewed-on: https://chromium-review.googlesource.com/285775
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Trybot-Ready: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index 1716756..33e22e8 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -62,6 +62,7 @@
'../libweave/src/privet/peerd_client.cc',
'../libweave/src/privet/privet_handler.cc',
'../libweave/src/privet/privet_manager.cc',
+ '../libweave/src/privet/privet_types.cc',
'../libweave/src/privet/security_manager.cc',
'../libweave/src/privet/shill_client.cc',
'../libweave/src/privet/wifi_bootstrap_manager.cc',
diff --git a/buffet/manager.cc b/buffet/manager.cc
index a8f6112..9fa54cd 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -23,6 +23,8 @@
#include <dbus/object_path.h>
#include <dbus/values_util.h>
+#include "weave/enum_to_string.h"
+
using chromeos::dbus_utils::AsyncEventSequencer;
using chromeos::dbus_utils::ExportedObjectManager;
@@ -37,21 +39,6 @@
const char kErrorDomain[] = "buffet";
const char kNotImplemented[] = "notImplemented";
-std::string StatusToString(weave::RegistrationStatus status) {
- switch (status) {
- case weave::RegistrationStatus::kUnconfigured:
- return "unconfigured";
- case weave::RegistrationStatus::kConnecting:
- return "connecting";
- case weave::RegistrationStatus::kConnected:
- return "connected";
- case weave::RegistrationStatus::kInvalidCredentials:
- return "invalid_credentials";
- }
- CHECK(0) << "Unknown status";
- return "unknown";
-}
-
} // anonymous namespace
Manager::Manager(const base::WeakPtr<ExportedObjectManager>& object_manager)
@@ -185,8 +172,12 @@
chromeos::ErrorPtr error;
weave::UserRole role;
- if (!FromString(in_user_role, &role, &error))
+ if (!StringToEnum(in_user_role, &role)) {
+ chromeos::Error::AddToPrintf(&error, FROM_HERE, kErrorDomain,
+ "invalid_user_role", "Invalid role: '%s'",
+ in_user_role.c_str());
return response->ReplyWithError(error.get());
+ }
std::string id;
if (!device_->GetCommands()->AddCommand(*command, role, &id, &error))
@@ -305,7 +296,7 @@
}
void Manager::OnRegistrationChanged(weave::RegistrationStatus status) {
- dbus_adaptor_.SetStatus(StatusToString(status));
+ dbus_adaptor_.SetStatus(weave::EnumToString(status));
}
void Manager::OnConfigChanged(const weave::BuffetConfig& config) {
@@ -319,22 +310,8 @@
dbus_adaptor_.SetAnonymousAccessRole(config.local_anonymous_access_role());
}
-void Manager::UpdateWiFiBootstrapState(
- weave::privet::WifiBootstrapManager::State state) {
- switch (state) {
- case weave::WifiSetupState::kDisabled:
- dbus_adaptor_.SetWiFiBootstrapState("disabled");
- break;
- case weave::WifiSetupState::kBootstrapping:
- dbus_adaptor_.SetWiFiBootstrapState("waiting");
- break;
- case weave::WifiSetupState::kMonitoring:
- dbus_adaptor_.SetWiFiBootstrapState("monitoring");
- break;
- case weave::WifiSetupState::kConnecting:
- dbus_adaptor_.SetWiFiBootstrapState("connecting");
- break;
- }
+void Manager::UpdateWiFiBootstrapState(weave::WifiSetupState state) {
+ dbus_adaptor_.SetWiFiBootstrapState(weave::EnumToString(state));
}
void Manager::OnPairingStart(const std::string& session_id,
@@ -344,7 +321,7 @@
// the most recent pairing attempt.
dbus_adaptor_.SetPairingInfo(chromeos::VariantDictionary{
{kPairingSessionIdKey, session_id},
- {kPairingModeKey, weave::privet::PairingTypeToString(pairing_type)},
+ {kPairingModeKey, weave::EnumToString(pairing_type)},
{kPairingCodeKey, code},
});
}