From c656e79111dc54dcb4e4d2747a6c4f3db7c13d8c Mon Sep 17 00:00:00 2001
From: "kyle.c.klenk@gmail.com" <kyle.c.klenk@gmail.com>
Date: Thu, 14 Jul 2022 13:13:59 -0600
Subject: [PATCH] fixed config file issue

---
 build/includes/summa_actor/summa_client.hpp   |  5 +++--
 build/run_script.sh                           |  2 +-
 build/source/actors/main.cpp                  |  5 +++--
 .../actors/summa_actor/summa_client.cpp       | 20 ++++++++++++++-----
 4 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/build/includes/summa_actor/summa_client.hpp b/build/includes/summa_actor/summa_client.hpp
index 9210a7b..6b8132d 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 e67a317..e06abf7 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 046d503..ab6583a 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 522b510..6df57bb 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) {
-- 
GitLab