diff --git a/build/includes/summa_actor/summa_client.hpp b/build/includes/summa_actor/summa_client.hpp index 9210a7bcccf8d2659197a2145dc742178f607bb6..6b8132db829c7b598f410b34a466b90afaa54387 100644 --- a/build/includes/summa_actor/summa_client.hpp +++ b/build/includes/summa_actor/summa_client.hpp @@ -4,18 +4,19 @@ #include "caf/io/all.hpp" #include <string> +#include <optional> namespace caf { struct summa_client_state { strong_actor_ptr current_server; std::string hostname; - std::string config_path; + std::optional<std::string> config_path; actor summa_actor_ref; int batch_id; int client_id; // id held by server }; -behavior summa_client(stateful_actor<summa_client_state>* self); +behavior summa_client(stateful_actor<summa_client_state>* self, std::optional<std::string> config_path); behavior unconnected(stateful_actor<summa_client_state>*); void connecting(stateful_actor<summa_client_state>*, const std::string& host, uint16_t port); behavior running(stateful_actor<summa_client_state>*, const actor& summa_server); diff --git a/build/run_script.sh b/build/run_script.sh index e67a31781f9f62dd5bef4225a98215ecf07854df..e06abf741305ed0defbc90aea59e7aa0a2c6caed 100755 --- a/build/run_script.sh +++ b/build/run_script.sh @@ -3,4 +3,4 @@ cd /Summa-Actors/build make -f /Summa-Actors/build/makefile-container all export LD_LIBRARY_PATH=/Summa-Actors/bin cd /Summa-Actors/bin -./summaMain -s -c ../config/ \ No newline at end of file +./summaMain -c /gladwell/kck540/Summa-Distributed/herschel/ \ No newline at end of file diff --git a/build/source/actors/main.cpp b/build/source/actors/main.cpp index 046d503443b72a43b28766a633cc92e47ca9eed1..ab6583ad3e9c2a70d28aad0db507c7b643b1b177 100644 --- a/build/source/actors/main.cpp +++ b/build/source/actors/main.cpp @@ -11,6 +11,7 @@ #include <iostream> #include "json.hpp" #include "batch_manager.hpp" +#include <optional> using namespace caf; @@ -48,8 +49,8 @@ void run_client(actor_system& system, const config& cfg) { aout(self) << "ERROR: run_client() host and port - CHECK SETTINGS FILE\n"; return; } - - auto c = system.spawn(summa_client); + std::optional<std::string> path = cfg.config_path; + auto c = system.spawn(summa_client, path); if (!host.empty() && port > 0) { anon_send(c, connect_atom_v, host, port); } else { diff --git a/build/source/actors/summa_actor/summa_client.cpp b/build/source/actors/summa_actor/summa_client.cpp index 522b5100814cff4fc5be132fbb6daf99f413bd41..6df57bbda5862fa1cba05e5162169793a86ee813 100644 --- a/build/source/actors/summa_actor/summa_client.cpp +++ b/build/source/actors/summa_actor/summa_client.cpp @@ -5,14 +5,16 @@ #include "summa_actor.hpp" #include "message_atoms.hpp" #include "batch_manager.hpp" - +#include <optional> #include <unistd.h> #include <limits.h> namespace caf { -behavior summa_client(stateful_actor<summa_client_state>* self) { +behavior summa_client(stateful_actor<summa_client_state>* self, std::optional<std::string> config_path) { + self->state.config_path = config_path; + self->set_down_handler([=](const down_msg& dm){ if(dm.source == self->state.current_server) { aout(self) << "*** Lost Connection to Server" << std::endl; @@ -77,11 +79,19 @@ behavior running(stateful_actor<summa_client_state>* self, const actor& server_a aout(self) << "BatchID = " << batch_id << "\n"; aout(self) << "Start HRU = " << start_hru << "\n"; aout(self) << "Num HRU = " << num_hru << "\n"; - - + aout(self) << "Config Path = " << config_path << "\n"; self->state.client_id = client_id; self->state.batch_id = batch_id; - self->state.summa_actor_ref = self->spawn(summa_actor, start_hru, num_hru, config_path, self); + + + self->state.summa_actor_ref = self->spawn(summa_actor, + start_hru, + num_hru, + self->state.config_path.value_or(config_path), + self); + + + }, [=](done_batch, double total_duration, double total_read_duration, double total_write_duration) {