94 std::stringstream json_data;
95 std::ifstream infile(file_name.c_str());
96 json_data << infile.rdbuf();
98 ResConfigData config_data;
99 JsonParseOptions options;
100 auto status = JsonStringToMessage(json_data.str(), &config_data, options);
102 LOG(ERROR) <<
"parse json :" << file_name <<
" fail:" << status.message();
126 const std::string& config_file,
const std::string& private_key_file,
127 const std::string& cert_file, std::optional<ReplicaInfo> self_info,
128 std::optional<ConfigGenFunc> gen_func) {
130 KeyInfo private_key =
ReadKey(private_key_file);
131 CertificateInfo cert_info = ReadCert(cert_file);
133 LOG(ERROR) <<
"private key:" << private_key.DebugString()
134 <<
" cert:" << cert_info.DebugString();
135 if (!self_info.has_value()) {
136 self_info = ReplicaInfo();
139 (*self_info).set_id(cert_info.public_key().public_key_info().node_id());
140 (*self_info).set_ip(cert_info.public_key().public_key_info().ip());
141 (*self_info).set_port(cert_info.public_key().public_key_info().port());
143 *(*self_info).mutable_certificate_info() = cert_info;
145 if (gen_func.has_value()) {
146 return (*gen_func)(config_data, self_info.value(), private_key, cert_info);
148 return std::make_unique<ResDBConfig>(config_data, self_info.value(),
149 private_key, cert_info);
std::unique_ptr< ResDBConfig > GenerateResDBConfig(const std::string &config_file, const std::string &private_key_file, const std::string &cert_file, std::optional< ReplicaInfo > self_info, std::optional< ConfigGenFunc > gen_func)