You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.1 KiB
103 lines
3.1 KiB
//
|
|
// Copyright (C) 2021 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#include "common/libs/confui/protocol.h"
|
|
|
|
#include <map>
|
|
#include <sstream>
|
|
#include <unordered_map>
|
|
#include <vector>
|
|
|
|
#include <android-base/strings.h>
|
|
|
|
#include "common/libs/confui/utils.h"
|
|
|
|
namespace cuttlefish {
|
|
namespace confui {
|
|
std::string ToDebugString(const ConfUiCmd& cmd, const bool is_debug) {
|
|
std::stringstream ss;
|
|
ss << "of " << Enum2Base(cmd);
|
|
std::string suffix = "";
|
|
if (is_debug) {
|
|
suffix.append(ss.str());
|
|
}
|
|
static std::unordered_map<ConfUiCmd, std::string> look_up_tab{
|
|
{ConfUiCmd::kUnknown, "kUnknown"},
|
|
{ConfUiCmd::kStart, "kStart"},
|
|
{ConfUiCmd::kStop, "kStop"},
|
|
{ConfUiCmd::kCliAck, "kCliAck"},
|
|
{ConfUiCmd::kCliRespond, "kCliRespond"},
|
|
{ConfUiCmd::kAbort, "kAbort"},
|
|
{ConfUiCmd::kSuspend, "kSuspend"},
|
|
{ConfUiCmd::kRestore, "kRestore"},
|
|
{ConfUiCmd::kUserInputEvent, "kUserInputEvent"}};
|
|
if (look_up_tab.find(cmd) != look_up_tab.end()) {
|
|
return look_up_tab[cmd] + suffix;
|
|
}
|
|
return "kUnknown" + suffix;
|
|
}
|
|
|
|
std::string ToString(const ConfUiCmd& cmd) { return ToDebugString(cmd, false); }
|
|
|
|
ConfUiCmd ToCmd(std::uint32_t i) {
|
|
std::vector<ConfUiCmd> all_cmds{
|
|
ConfUiCmd::kStart, ConfUiCmd::kStop, ConfUiCmd::kCliAck,
|
|
ConfUiCmd::kCliRespond, ConfUiCmd::kAbort, ConfUiCmd::kSuspend,
|
|
ConfUiCmd::kRestore, ConfUiCmd::kUserInputEvent, ConfUiCmd::kUnknown};
|
|
|
|
for (auto& cmd : all_cmds) {
|
|
if (i == Enum2Base(cmd)) {
|
|
return cmd;
|
|
}
|
|
}
|
|
return ConfUiCmd::kUnknown;
|
|
}
|
|
|
|
ConfUiCmd ToCmd(const std::string& cmd_str) {
|
|
static std::map<std::string, ConfUiCmd> cmds = {
|
|
{"kStart", ConfUiCmd::kStart},
|
|
{"kStop", ConfUiCmd::kStop},
|
|
{"kCliAck", ConfUiCmd::kCliAck},
|
|
{"kCliRespond", ConfUiCmd::kCliRespond},
|
|
{"kAbort", ConfUiCmd::kAbort},
|
|
{"kSuspend", ConfUiCmd::kSuspend},
|
|
{"kRestore", ConfUiCmd::kRestore},
|
|
{"kUserInputEvent", ConfUiCmd::kUserInputEvent},
|
|
};
|
|
if (cmds.find(cmd_str) != cmds.end()) {
|
|
return cmds[cmd_str];
|
|
}
|
|
return ConfUiCmd::kUnknown;
|
|
}
|
|
|
|
std::string ToCliAckMessage(const bool is_success, const std::string& message) {
|
|
std::string header = "error:";
|
|
if (is_success) {
|
|
header = "success:";
|
|
}
|
|
return header + message;
|
|
}
|
|
|
|
std::string ToCliAckSuccessMsg(const std::string& message) {
|
|
return ToCliAckMessage(true, message);
|
|
}
|
|
|
|
std::string ToCliAckErrorMsg(const std::string& message) {
|
|
return ToCliAckMessage(false, message);
|
|
}
|
|
|
|
} // end of namespace confui
|
|
} // end of namespace cuttlefish
|