| 5004 | return info; |
| 5005 | } |
| 5006 | fc::variant_object node_impl::network_get_usage_stats() const |
| 5007 | { |
| 5008 | VERIFY_CORRECT_THREAD(); |
| 5009 | std::vector<uint32_t> network_usage_by_second; |
| 5010 | network_usage_by_second.reserve(_average_network_read_speed_seconds.size()); |
| 5011 | std::transform(_average_network_read_speed_seconds.begin(), _average_network_read_speed_seconds.end(), |
| 5012 | _average_network_write_speed_seconds.begin(), |
| 5013 | std::back_inserter(network_usage_by_second), |
| 5014 | std::plus<uint32_t>()); |
| 5015 | |
| 5016 | std::vector<uint32_t> network_usage_by_minute; |
| 5017 | network_usage_by_minute.reserve(_average_network_read_speed_minutes.size()); |
| 5018 | std::transform(_average_network_read_speed_minutes.begin(), _average_network_read_speed_minutes.end(), |
| 5019 | _average_network_write_speed_minutes.begin(), |
| 5020 | std::back_inserter(network_usage_by_minute), |
| 5021 | std::plus<uint32_t>()); |
| 5022 | |
| 5023 | std::vector<uint32_t> network_usage_by_hour; |
| 5024 | network_usage_by_hour.reserve(_average_network_read_speed_hours.size()); |
| 5025 | std::transform(_average_network_read_speed_hours.begin(), _average_network_read_speed_hours.end(), |
| 5026 | _average_network_write_speed_hours.begin(), |
| 5027 | std::back_inserter(network_usage_by_hour), |
| 5028 | std::plus<uint32_t>()); |
| 5029 | |
| 5030 | fc::mutable_variant_object result; |
| 5031 | result["usage_by_second"] = network_usage_by_second; |
| 5032 | result["usage_by_minute"] = network_usage_by_minute; |
| 5033 | result["usage_by_hour"] = network_usage_by_hour; |
| 5034 | return result; |
| 5035 | } |
| 5036 | |
| 5037 | bool node_impl::is_hard_fork_block(uint32_t block_number) const |
| 5038 | { |