#ifndef AWS_IO_STATISTICS_H
#define AWS_IO_STATISTICS_H
#include <aws/io/io.h>
#include <aws/common/statistics.h>
#include <aws/io/tls_channel_handler.h>
enum aws_crt_io_statistics_category {
AWSCRT_STAT_CAT_SOCKET = AWS_CRT_STATISTICS_CATEGORY_BEGIN_RANGE(AWS_C_IO_PACKAGE_ID),
AWSCRT_STAT_CAT_TLS,
};
struct aws_crt_statistics_socket {
aws_crt_statistics_category_t category;
uint64_t bytes_read;
uint64_t bytes_written;
};
struct aws_crt_statistics_tls {
aws_crt_statistics_category_t category;
uint64_t handshake_start_ns;
uint64_t handshake_end_ns;
enum aws_tls_negotiation_status handshake_status;
};
AWS_EXTERN_C_BEGIN
AWS_IO_API
int aws_crt_statistics_socket_init(struct aws_crt_statistics_socket *stats);
AWS_IO_API
void aws_crt_statistics_socket_cleanup(struct aws_crt_statistics_socket *stats);
AWS_IO_API
void aws_crt_statistics_socket_reset(struct aws_crt_statistics_socket *stats);
AWS_IO_API
int aws_crt_statistics_tls_init(struct aws_crt_statistics_tls *stats);
AWS_IO_API
void aws_crt_statistics_tls_cleanup(struct aws_crt_statistics_tls *stats);
AWS_IO_API
void aws_crt_statistics_tls_reset(struct aws_crt_statistics_tls *stats);
AWS_EXTERN_C_END
#endif