#include #include #include #include #include #include #include "communication/rpc/client.hpp" #include "io/network/endpoint.hpp" #include "io/network/utils.hpp" #include "messages.hpp" using namespace communication::rpc; using namespace std::literals::chrono_literals; DEFINE_string(server_interface, "127.0.0.1", "Server interface on which to communicate."); DEFINE_int32(server_port, 8010, "Server port on which to communicate."); int main(int argc, char **argv) { google::SetUsageMessage("Raft RPC Client"); gflags::ParseCommandLineFlags(&argc, &argv, true); google::InitGoogleLogging(argv[0]); // Initialize client. Client client(io::network::Endpoint( io::network::ResolveHostname(FLAGS_server_interface), FLAGS_server_port)); // Try to send 100 values to server. // If requests timeout, try to resend it. // Log output on server should contain all values once // in correct order. for (int i = 1; i <= 100; ++i) { LOG(INFO) << fmt::format("Apennding value: {}", i); // TODO: Serialize RPC via Cap'n Proto // auto result_tuple = client.Call(i); // if (!result_tuple) { // LOG(INFO) << "Request unsuccessful"; // // Try to resend value // --i; // } else { // LOG(INFO) << fmt::format("Appended value: {}", i); // } } return 0; }