OpenSDN source code
io_utils.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
3 //
4 
5 #ifndef SRC_IO_IO_UTILS_H_
6 #define SRC_IO_IO_UTILS_H_
7 
8 #include <atomic>
9 
10 class SocketIOStats;
11 
12 namespace io {
13 
14 struct SocketStats {
15  SocketStats();
16 
17  void GetRxStats(SocketIOStats *socket_stats) const;
18  void GetTxStats(SocketIOStats *socket_stats) const;
19 
20  std::atomic<uint64_t> read_calls;
21  std::atomic<uint64_t> read_bytes;
22  std::atomic<uint64_t> read_errors;
23  std::atomic<uint64_t> write_calls;
24  std::atomic<uint64_t> write_bytes;
25  std::atomic<uint64_t> write_errors;
26  std::atomic<uint64_t> write_block_start_time;
27  std::atomic<uint64_t> write_blocked;
28  std::atomic<uint64_t> write_blocked_duration_usecs;
29  std::atomic<uint64_t> read_block_start_time;
30  std::atomic<uint64_t> read_blocked;
31  std::atomic<uint64_t> read_blocked_duration_usecs;
32 };
33 
34 } // namespace io
35 
36 #endif // SRC_IO_IO_UTILS_H_
Definition: io_utils.cc:11
std::atomic< uint64_t > write_errors
Definition: io_utils.h:25
std::atomic< uint64_t > write_calls
Definition: io_utils.h:23
std::atomic< uint64_t > write_blocked_duration_usecs
Definition: io_utils.h:28
std::atomic< uint64_t > read_bytes
Definition: io_utils.h:21
std::atomic< uint64_t > read_block_start_time
Definition: io_utils.h:29
void GetRxStats(SocketIOStats *socket_stats) const
Definition: io_utils.cc:28
std::atomic< uint64_t > write_blocked
Definition: io_utils.h:27
std::atomic< uint64_t > read_blocked_duration_usecs
Definition: io_utils.h:31
std::atomic< uint64_t > read_calls
Definition: io_utils.h:20
std::atomic< uint64_t > write_block_start_time
Definition: io_utils.h:26
std::atomic< uint64_t > read_blocked
Definition: io_utils.h:30
std::atomic< uint64_t > write_bytes
Definition: io_utils.h:24
void GetTxStats(SocketIOStats *socket_stats) const
Definition: io_utils.cc:47
std::atomic< uint64_t > read_errors
Definition: io_utils.h:22