-
Notifications
You must be signed in to change notification settings - Fork 0
/
diagnosticsconfig.cpp
32 lines (28 loc) · 1.95 KB
/
diagnosticsconfig.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <vxldollar/lib/diagnosticsconfig.hpp>
#include <vxldollar/lib/tomlconfig.hpp>
vxldollar::error vxldollar::diagnostics_config::serialize_toml (vxldollar::tomlconfig & toml) const
{
vxldollar::tomlconfig txn_tracking_l;
txn_tracking_l.put ("enable", txn_tracking.enable, "Enable or disable database transaction tracing.\ntype:bool");
txn_tracking_l.put ("min_read_txn_time", txn_tracking.min_read_txn_time.count (), "Log stacktrace when read transactions are held longer than this duration.\ntype:milliseconds");
txn_tracking_l.put ("min_write_txn_time", txn_tracking.min_write_txn_time.count (), "Log stacktrace when write transactions are held longer than this duration.\ntype:milliseconds");
txn_tracking_l.put ("ignore_writes_below_block_processor_max_time", txn_tracking.ignore_writes_below_block_processor_max_time, "Ignore any block processor writes less than block_processor_batch_max_time.\ntype:bool");
toml.put_child ("txn_tracking", txn_tracking_l);
return toml.get_error ();
}
vxldollar::error vxldollar::diagnostics_config::deserialize_toml (vxldollar::tomlconfig & toml)
{
auto txn_tracking_l (toml.get_optional_child ("txn_tracking"));
if (txn_tracking_l)
{
txn_tracking_l->get_optional<bool> ("enable", txn_tracking.enable);
auto min_read_txn_time_l = static_cast<unsigned long> (txn_tracking.min_read_txn_time.count ());
txn_tracking_l->get_optional ("min_read_txn_time", min_read_txn_time_l);
txn_tracking.min_read_txn_time = std::chrono::milliseconds (min_read_txn_time_l);
auto min_write_txn_time_l = static_cast<unsigned long> (txn_tracking.min_write_txn_time.count ());
txn_tracking_l->get_optional ("min_write_txn_time", min_write_txn_time_l);
txn_tracking.min_write_txn_time = std::chrono::milliseconds (min_write_txn_time_l);
txn_tracking_l->get_optional<bool> ("ignore_writes_below_block_processor_max_time", txn_tracking.ignore_writes_below_block_processor_max_time);
}
return toml.get_error ();
}