27 #ifndef _EVENT2_BUFFEREVENT_H_
28 #define _EVENT2_BUFFEREVENT_H_
81 #include <event2/event-config.h>
82 #ifdef _EVENT_HAVE_SYS_TYPES_H
83 #include <sys/types.h>
85 #ifdef _EVENT_HAVE_SYS_TIME_H
98 #define BEV_EVENT_READING 0x01
99 #define BEV_EVENT_WRITING 0x02
100 #define BEV_EVENT_EOF 0x10
101 #define BEV_EVENT_ERROR 0x20
102 #define BEV_EVENT_TIMEOUT 0x40
103 #define BEV_EVENT_CONNECTED 0x80
112 #ifdef _EVENT_IN_DOXYGEN
235 struct evdns_base *,
int,
const char *,
int);
338 const void *data,
size_t size);
455 const struct timeval *timeout_read,
const struct timeval *timeout_write);
476 size_t lowmark,
size_t highmark);
577 void (*free_context)(
void *),
604 struct ev_token_bucket_cfg;
610 struct bufferevent_rate_limit_group;
613 #define EV_RATE_LIMIT_MAX EV_SSIZE_MAX
632 size_t read_rate,
size_t read_burst,
633 size_t write_rate,
size_t write_burst,
634 const struct timeval *tick_len);
655 struct ev_token_bucket_cfg *cfg);
676 const struct ev_token_bucket_cfg *cfg);
683 struct bufferevent_rate_limit_group *,
684 const struct ev_token_bucket_cfg *);
703 struct bufferevent_rate_limit_group *,
size_t);
722 struct bufferevent_rate_limit_group *g);
738 ev_ssize_t bufferevent_get_read_limit(
struct bufferevent *bev);
739 ev_ssize_t bufferevent_get_write_limit(
struct bufferevent *bev);
742 ev_ssize_t bufferevent_get_max_to_read(
struct bufferevent *bev);
743 ev_ssize_t bufferevent_get_max_to_write(
struct bufferevent *bev);
754 ev_ssize_t bufferevent_rate_limit_group_get_read_limit(
755 struct bufferevent_rate_limit_group *);
756 ev_ssize_t bufferevent_rate_limit_group_get_write_limit(
757 struct bufferevent_rate_limit_group *);
774 int bufferevent_decrement_read_limit(
struct bufferevent *bev, ev_ssize_t decr);
775 int bufferevent_decrement_write_limit(
struct bufferevent *bev, ev_ssize_t decr);
791 int bufferevent_rate_limit_group_decrement_read(
792 struct bufferevent_rate_limit_group *, ev_ssize_t);
793 int bufferevent_rate_limit_group_decrement_write(
794 struct bufferevent_rate_limit_group *, ev_ssize_t);
805 struct bufferevent_rate_limit_group *grp,
806 ev_uint64_t *total_read_out, ev_uint64_t *total_written_out);
815 struct bufferevent_rate_limit_group *grp);