diff --git a/examples/message-board/message-board.js b/examples/message-board/message-board.js index de057f0..e8a8a11 100644 --- a/examples/message-board/message-board.js +++ b/examples/message-board/message-board.js @@ -115,6 +115,7 @@ const interatctiveInterface = async () => { if (modifyContract === 'y' || modifyContract === 'Y') { unl = await askForInput('Comma seperated UNL ,,...'); execute = await askForInput('Execute contract? (optional)'); + roundtime = await askForInput('Roundtime? (optional)'); log = await askForInput('log <{true|false},max_mbytes_per_file,max_file_count> (optional)'); if (log) { split = log.split(','); @@ -129,6 +130,7 @@ const interatctiveInterface = async () => { } config.contract = { execute: execute ? (execute === 'true' ? true : false) : undefined, + roundtime: roundtime ? parseInt(roundtime) : undefined, log: log ? { enable: split[0] === 'true' ? true : false, max_mbytes_per_file: parseInt(split[1]), diff --git a/src/hp_manager.cpp b/src/hp_manager.cpp index d775263..ee3d86d 100644 --- a/src/hp_manager.cpp +++ b/src/hp_manager.cpp @@ -666,6 +666,9 @@ namespace hp if (config.contract.execute.has_value()) d["contract"]["execute"] = config.contract.execute.value(); + if (config.contract.roundtime.has_value()) + d["contract"]["roundtime"] = config.contract.roundtime.value(); + if (config.contract.log.enable.has_value()) d["contract"]["log"]["enable"] = config.contract.log.enable.value(); @@ -726,7 +729,7 @@ namespace hp if (config.mesh.msg_forwarding.has_value()) d["mesh"]["msg_forwarding"] = config.mesh.msg_forwarding.value(); - + if (config.mesh.max_connections.has_value()) d["mesh"]["max_connections"] = config.mesh.max_connections.value(); @@ -741,7 +744,7 @@ namespace hp if (config.mesh.max_bytes_per_min.has_value()) d["mesh"]["max_bytes_per_min"] = config.mesh.max_bytes_per_min.value(); - + if (config.mesh.max_bad_msgs_per_min.has_value()) d["mesh"]["max_bad_msgs_per_min"] = config.mesh.max_bad_msgs_per_min.value(); diff --git a/src/msg/json/msg_json.cpp b/src/msg/json/msg_json.cpp index 42b557a..52d82ae 100644 --- a/src/msg/json/msg_json.cpp +++ b/src/msg/json/msg_json.cpp @@ -281,6 +281,9 @@ namespace msg::json if (contract.contains(msg::FLD_EXECUTE)) msg.config.contract.execute = contract[msg::FLD_EXECUTE].as(); + if (contract.contains(msg::FLD_ROUNDTIME)) + msg.config.contract.roundtime = contract[msg::FLD_ROUNDTIME].as(); + if (contract.contains(msg::FLD_LOG)) { const jsoncons::json &log = contract[msg::FLD_LOG]; diff --git a/src/msg/msg_common.hpp b/src/msg/msg_common.hpp index 13471aa..21d0131 100644 --- a/src/msg/msg_common.hpp +++ b/src/msg/msg_common.hpp @@ -36,6 +36,7 @@ namespace msg struct contract_config { + std::optional roundtime; std::set unl; std::optional execute; c_log_config log; @@ -139,6 +140,7 @@ namespace msg constexpr const char *FLD_MESH = "mesh"; constexpr const char *FLD_USER = "user"; constexpr const char *FLD_EXECUTE = "execute"; + constexpr const char *FLD_ROUNDTIME = "roundtime"; constexpr const char *FLD_LOG = "log"; constexpr const char *FLD_LOG_LEVEL = "log_level"; constexpr const char *FLD_ENABLE = "enable";