33 char* config_file,
char* private_key_file,
char* cert_file,
34 std::unique_ptr<TransactionManager> executor,
char* logging_dir,
35 std::function<
void(
ResDBConfig* config)> config_handler);
37 template <
typename ConsensusProtocol = ConsensusManagerPBFT>
39 char* config_file,
char* private_key_file,
char* cert_file,
40 std::unique_ptr<TransactionManager> executor,
char* logging_dir,
41 std::function<
void(
ResDBConfig* config)> config_handler);
43 template <
typename ConsensusProtocol = ConsensusManagerPBFT>
45 char* config_file,
char* private_key_file,
char* cert_file,
46 std::unique_ptr<TransactionManager> executor,
47 std::unique_ptr<CustomQuery> query_executor,
48 std::function<
void(
ResDBConfig* config)> config_handler);
52 char* config_file,
char* private_key_file,
char* cert_file,
53 std::unique_ptr<TransactionManager> executor,
char* logging_dir =
nullptr,
54 std::function<
void(
ResDBConfig* config)> config_handler =
nullptr);
56template <
typename ConsensusProtocol>
58 char* config_file,
char* private_key_file,
char* cert_file,
59 std::unique_ptr<TransactionManager> executor,
char* logging_dir =
nullptr,
60 std::function<
void(
ResDBConfig* config)> config_handler =
nullptr);
62template <
typename ConsensusProtocol>
64 char* config_file,
char* private_key_file,
char* cert_file,
65 std::unique_ptr<TransactionManager> executor,
66 std::unique_ptr<CustomQuery> query_executor,
67 std::function<
void(
ResDBConfig* config)> config_handler =
nullptr);
70template <
typename ConsensusProtocol>
72 char* config_file,
char* private_key_file,
char* cert_file,
73 std::unique_ptr<TransactionManager> executor,
char* logging_dir,
74 std::function<
void(
ResDBConfig* config)> config_handler) {
75 std::unique_ptr<ResDBConfig> config =
79 config_handler(config.get());
81 return std::make_unique<ServiceNetwork>(
83 std::make_unique<ConsensusProtocol>(*config, std::move(executor)));
86template <
typename ConsensusProtocol>
88 char* config_file,
char* private_key_file,
char* cert_file,
89 std::unique_ptr<TransactionManager> executor,
90 std::unique_ptr<CustomQuery> query_executor,
91 std::function<
void(
ResDBConfig* config)> config_handler) {
92 std::unique_ptr<ResDBConfig> config =
96 config_handler(config.get());
98 return std::make_unique<ServiceNetwork>(
99 *config, std::make_unique<ConsensusProtocol>(*config, std::move(executor),
100 std::move(query_executor)));
103template <
typename ConsensusProtocol>
105 char* config_file,
char* private_key_file,
char* cert_file,
106 std::unique_ptr<TransactionManager> executor,
char* logging_dir,
107 std::function<
void(
ResDBConfig* config)> config_handler) {
109 config_file, private_key_file, cert_file, std::move(executor),
110 logging_dir, config_handler);
113template <
typename ConsensusProtocol>
115 char* config_file,
char* private_key_file,
char* cert_file,
116 std::unique_ptr<TransactionManager> executor,
117 std::unique_ptr<CustomQuery> query_executor,
118 std::function<
void(
ResDBConfig* config)> config_handler) {
120 config_file, private_key_file, cert_file, std::move(executor),
121 std::move(query_executor), config_handler);
std::unique_ptr< ServiceNetwork > CustomCreateResDBServer(char *config_file, char *private_key_file, char *cert_file, std::unique_ptr< TransactionManager > executor, char *logging_dir, std::function< void(ResDBConfig *config)> config_handler)
std::unique_ptr< ServiceNetwork > CreateResDBServer(char *config_file, char *private_key_file, char *cert_file, std::unique_ptr< TransactionManager > executor, char *logging_dir, std::function< void(ResDBConfig *config)> config_handler)
std::unique_ptr< ServiceNetwork > GenerateResDBServer(char *config_file, char *private_key_file, char *cert_file, std::unique_ptr< TransactionManager > executor, char *logging_dir, std::function< void(ResDBConfig *config)> config_handler)
std::unique_ptr< ServiceNetwork > CustomGenerateResDBServer(char *config_file, char *private_key_file, char *cert_file, std::unique_ptr< TransactionManager > executor, char *logging_dir=nullptr, std::function< void(ResDBConfig *config)> config_handler=nullptr)
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)