OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
io_utils.cc
Go to the documentation of this file.
1 //
2 // Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
3 //
4 
5 #include <sandesh/sandesh_trace.h>
6 
7 #include "base/util.h"
8 #include "io/io_types.h"
9 #include "io/io_utils.h"
10 
11 namespace io {
12 
14  read_calls = 0;
15  read_bytes = 0;
16  read_errors = 0;
17  write_calls = 0;
18  write_bytes = 0;
19  write_errors = 0;
21  write_blocked = 0;
24  read_blocked = 0;
26 }
27 
28 void SocketStats::GetRxStats(SocketIOStats *socket_stats) const {
29  socket_stats->calls = read_calls;
30  socket_stats->bytes = read_bytes;
31  if (read_calls) {
32  socket_stats->average_bytes =
33  static_cast<double>(read_bytes / read_calls);
34  }
35  socket_stats->blocked_count = read_blocked;
36  socket_stats->blocked_duration = duration_usecs_to_string(
38  if (read_blocked) {
39  socket_stats->average_blocked_duration =
42  read_blocked);
43  }
44  socket_stats->errors = read_errors;
45 }
46 
47 void SocketStats::GetTxStats(SocketIOStats *socket_stats) const {
48  socket_stats->calls = write_calls;
49  socket_stats->bytes = write_bytes;
50  if (write_calls) {
51  socket_stats->average_bytes =
52  static_cast<double>(write_bytes / write_calls);
53  }
54  socket_stats->blocked_count = write_blocked;
55  socket_stats->blocked_duration = duration_usecs_to_string(
57  if (write_blocked) {
58  socket_stats->average_blocked_duration =
62  }
63  socket_stats->errors = write_errors;
64 }
65 
66 } // namespace io
tbb::atomic< uint64_t > read_blocked
Definition: io_utils.h:30
tbb::atomic< uint64_t > write_block_start_time
Definition: io_utils.h:26
tbb::atomic< uint64_t > write_errors
Definition: io_utils.h:25
tbb::atomic< uint64_t > write_bytes
Definition: io_utils.h:24
tbb::atomic< uint64_t > write_blocked
Definition: io_utils.h:27
void GetTxStats(SocketIOStats *socket_stats) const
Definition: io_utils.cc:47
tbb::atomic< uint64_t > write_calls
Definition: io_utils.h:23
tbb::atomic< uint64_t > read_bytes
Definition: io_utils.h:21
tbb::atomic< uint64_t > read_calls
Definition: io_utils.h:20
tbb::atomic< uint64_t > read_blocked_duration_usecs
Definition: io_utils.h:31
tbb::atomic< uint64_t > write_blocked_duration_usecs
Definition: io_utils.h:28
void GetRxStats(SocketIOStats *socket_stats) const
Definition: io_utils.cc:28
static const std::string duration_usecs_to_string(const uint64_t usecs)
Definition: time_util.h:62
tbb::atomic< uint64_t > read_errors
Definition: io_utils.h:22
tbb::atomic< uint64_t > read_block_start_time
Definition: io_utils.h:29