LCOV - code coverage report
Current view: top level - root/contrail/src/contrail-common/io - io_utils.cc (source / functions) Hit Total Coverage
Test: OpenSDN C/C++ coverage (all TARGET_SET jobs) Lines: 40 42 95.2 %
Date: 2026-11-09 02:10:49 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //
       2             : // Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
       3             : // Copyright Contributors to the OpenSDN project
       4             : //
       5             : 
       6             : #include <sandesh/sandesh_trace.h>
       7             : 
       8             : #include "base/util.h"
       9             : #include "io/io_types.h"
      10             : #include "io/io_utils.h"
      11             : 
      12             : namespace io {
      13             : 
      14       47175 : SocketStats::SocketStats() {
      15       47175 :     read_calls = 0;
      16       47176 :     read_bytes = 0;
      17       47176 :     read_errors = 0;
      18       47178 :     write_calls = 0;
      19       47175 :     write_bytes = 0;
      20       47178 :     write_errors = 0;
      21       47176 :     write_block_start_time = 0;
      22       47177 :     write_blocked = 0;
      23       47178 :     write_blocked_duration_usecs = 0;
      24       47177 :     read_block_start_time = 0;
      25       47175 :     read_blocked = 0;
      26       47178 :     read_blocked_duration_usecs = 0;
      27       47171 : }
      28             : 
      29         673 : void SocketStats::GetRxStats(SocketIOStats *socket_stats) const {
      30         673 :     socket_stats->calls = read_calls;
      31         673 :     socket_stats->bytes = read_bytes;
      32         673 :     if (read_calls) {
      33         251 :         socket_stats->average_bytes =
      34         251 :             static_cast<double>(read_bytes / read_calls);
      35             :     }
      36         673 :     socket_stats->blocked_count = read_blocked;
      37        1346 :     socket_stats->blocked_duration = duration_usecs_to_string(
      38         673 :         read_blocked_duration_usecs);
      39         673 :     if (read_blocked) {
      40             :         socket_stats->average_blocked_duration =
      41           4 :                  duration_usecs_to_string(
      42             :                      read_blocked_duration_usecs/
      43           4 :                      read_blocked);
      44             :     }
      45         673 :     socket_stats->errors = read_errors;
      46         673 : }
      47             : 
      48         670 : void SocketStats::GetTxStats(SocketIOStats *socket_stats) const {
      49         670 :     socket_stats->calls = write_calls;
      50         670 :     socket_stats->bytes = write_bytes;
      51         670 :     if (write_calls) {
      52         248 :         socket_stats->average_bytes =
      53         248 :             static_cast<double>(write_bytes / write_calls);
      54             :     }
      55         670 :     socket_stats->blocked_count = write_blocked;
      56        1340 :     socket_stats->blocked_duration = duration_usecs_to_string(
      57         670 :         write_blocked_duration_usecs);
      58         670 :     if (write_blocked) {
      59             :         socket_stats->average_blocked_duration =
      60           0 :                  duration_usecs_to_string(
      61             :                      write_blocked_duration_usecs/
      62           0 :                      write_blocked);
      63             :     }
      64         670 :     socket_stats->errors = write_errors;
      65         670 : }
      66             : 
      67             : }  // namespace io

Generated by: LCOV version 1.14