git-hulk commented on code in PR #881:
URL: https://github.com/apache/incubator-kvrocks/pull/881#discussion_r973573170
##########
src/redis_cmd.cc:
##########
@@ -4132,6 +4151,78 @@ class CommandEcho : public Commander {
}
};
+/* HELLO [<protocol-version> [AUTH <password>] [SETNAME <name>] ] */
+class CommandHello final : public Commander {
+public:
Review Comment:
```suggestion
public:
```
##########
src/redis_reply.cc:
##########
@@ -45,36 +45,39 @@ std::string MultiLen(int64_t len) {
return "*"+std::to_string(len)+"\r\n";
}
-std::string MultiBulkString(std::vector<std::string> values, bool
output_nil_for_empty_string) {
+std::string MultiBulkString(const std::vector<std::string>& values, bool
output_nil_for_empty_string) {
+ std::string result = "*" + std::to_string(values.size()) + CRLF;
for (size_t i = 0; i < values.size(); i++) {
if (values[i].empty() && output_nil_for_empty_string) {
- values[i] = NilString();
+ result += NilString();
} else {
- values[i] = BulkString(values[i]);
+ result += BulkString(values[i]);
}
}
- return Array(values);
+ return result;
}
-std::string MultiBulkString(std::vector<std::string> values, const
std::vector<rocksdb::Status> &statuses) {
+std::string MultiBulkString(const std::vector<std::string>& values, const
std::vector<rocksdb::Status> &statuses) {
+ std::string result = "*" + std::to_string(values.size()) + CRLF;
for (size_t i = 0; i < values.size(); i++) {
if (i < statuses.size() && !statuses[i].ok()) {
- values[i] = NilString();
+ result += NilString();
} else {
- values[i] = BulkString(values[i]);
+ result += BulkString(values[i]);
}
}
- return Array(values);
+ return result;
}
-std::string Array(std::vector<std::string> list) {
- std::string::size_type n = std::accumulate(
- list.begin(), list.end(), std::string::size_type(0),
- [] ( std::string::size_type n, const std::string &s ) { return ( n +=
s.size() ); });
+
+std::string Array(const std::vector<std::string>& list) {
+ size_t n = std::accumulate(
+ list.begin(), list.end(), 0, [] (size_t n, const std::string &s) {
return n + s.size(); });
std::string result = "*" + std::to_string(list.size()) + CRLF;
- result.reserve(n);
- return std::accumulate(list.begin(), list.end(), result,
- [](std::string &dest, std::string const &item) -> std::string& {dest +=
item; return dest;});
+ std::string::size_type final_size = result.size() + n;
+ result.reserve(final_size);
+ for(const auto& i : list) result += i;
Review Comment:
```suggestion
for (const auto& i : list) result += i;
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]