Как установить повторение повторяющихся элементов в proto3 - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть два определения в моем .proto:

// all the shards on a server
message ConfigEntry {
  repeated Shard shards = 2;
  string server = 3;
}

// information on all the groups
message QueryResponse {
  repeated ConfigEntry config = 1;
}

И в моем файле c ++ у меня есть карта, которую я пытаюсь установить в QueryResponse:

std::map<std::string, std::vector<shard_t>> servers;

Я не могу найти способ установить значения в моей карте для настройки в QueryResponse, есть идеи, как это сделать?

1 Ответ

0 голосов
/ 30 апреля 2020

Было бы что-то вроде этого:

    for (auto const &item : servers)
  {
    auto c = response->add_config();
    c->set_server(item.first);
    for (auto s : item.second)
    {
      Shard *sh = c->add_shards();
      sh->set_lower(s.lower);
      sh->set_upper(s.upper);
    }
  }

мы вызываем add_config (), чтобы получить ConfigEntry, в котором мы установим имя его сервера, а затем l oop через вектор и добавим каждый шард отдельно .

...