44
55#include < algorithm> // copy
66#include < cctype> // tolower
7- #include < cstddef> // ptrdiff_t
7+ #include < chrono>
8+ #include < cstddef> // ptrdiff_t
89#include < cstdlib>
910#include < ios> // hex, setfill, setw
1011#include < sstream>
@@ -26,7 +27,8 @@ constexpr std::size_t kBucketIdLength = 5;
2627
2728LiveBlocking::LiveBlocking (ILogReceiver* log_receiver, std::string key,
2829 std::string dataset, bool send_ts_out,
29- VersionUpgradePolicy upgrade_policy)
30+ VersionUpgradePolicy upgrade_policy,
31+ std::chrono::seconds heartbeat_interval)
3032
3133 : log_receiver_{log_receiver},
3234 key_{std::move (key)},
@@ -35,20 +37,23 @@ LiveBlocking::LiveBlocking(ILogReceiver* log_receiver, std::string key,
3537 port_{13000 },
3638 send_ts_out_{send_ts_out},
3739 upgrade_policy_{upgrade_policy},
40+ heartbeat_interval_{heartbeat_interval},
3841 client_{gateway_, port_},
3942 session_id_{this ->Authenticate ()} {}
4043
4144LiveBlocking::LiveBlocking (ILogReceiver* log_receiver, std::string key,
4245 std::string dataset, std::string gateway,
4346 std::uint16_t port, bool send_ts_out,
44- VersionUpgradePolicy upgrade_policy)
47+ VersionUpgradePolicy upgrade_policy,
48+ std::chrono::seconds heartbeat_interval)
4549 : log_receiver_{log_receiver},
4650 key_{std::move (key)},
4751 dataset_{std::move (dataset)},
4852 gateway_{std::move (gateway)},
4953 port_{port},
5054 send_ts_out_{send_ts_out},
5155 upgrade_policy_{upgrade_policy},
56+ heartbeat_interval_{heartbeat_interval},
5257 client_{gateway_, port_},
5358 session_id_{this ->Authenticate ()} {}
5459
@@ -261,11 +266,14 @@ std::string LiveBlocking::GenerateCramReply(const std::string& challenge_key) {
261266}
262267
263268std::string LiveBlocking::EncodeAuthReq (const std::string& auth) {
264- std::ostringstream reply_stream;
265- reply_stream << " auth=" << auth << " |dataset=" << dataset_ << " |encoding=dbn|"
266- << " ts_out=" << send_ts_out_
267- << " |client=C++ " DATABENTO_VERSION " \n " ;
268- return reply_stream.str ();
269+ std::ostringstream req_stream;
270+ req_stream << " auth=" << auth << " |dataset=" << dataset_ << " |encoding=dbn|"
271+ << " ts_out=" << send_ts_out_ << " |client=C++ " DATABENTO_VERSION;
272+ if (heartbeat_interval_.count () > 0 ) {
273+ req_stream << " |heartbeat_interval_s=" << heartbeat_interval_.count ();
274+ }
275+ req_stream << ' \n ' ;
276+ return req_stream.str ();
269277}
270278
271279std::uint64_t LiveBlocking::DecodeAuthResp () {
0 commit comments