26 #ifndef EVENT2_BUFFER_H_INCLUDED_
27 #define EVENT2_BUFFER_H_INCLUDED_
75 #include <event2/visibility.h>
81 #include <event2/event-config.h>
83 #ifdef EVENT__HAVE_SYS_TYPES_H
84 #include <sys/types.h>
86 #ifdef EVENT__HAVE_SYS_UIO_H
98 #ifdef EVENT_IN_DOXYGEN_
132 #ifdef EVENT__HAVE_SYS_UIO_H
133 #define evbuffer_iovec iovec
135 #define EVBUFFER_IOVEC_IS_NATIVE_
206 #define EVBUFFER_FLAG_DRAINS_TO_FD 1
480 size_t datalen,
void *extra);
499 const void *data,
size_t datlen,
545 #define EVBUF_FS_CLOSE_ON_FREE 0x01
550 #define EVBUF_FS_DISABLE_MMAP 0x02
560 #define EVBUF_FS_DISABLE_SENDFILE 0x04
567 #define EVBUF_FS_DISABLE_LOCKING 0x08
664 __attribute__((format(printf, 2, 3)))
679 __attribute__((format(printf, 2, 0)))
935 #define EVBUFFER_CB_ENABLED 1
1005 EVENT2_EXPORT_SYMBOL
1016 EVENT2_EXPORT_SYMBOL
1033 EVENT2_EXPORT_SYMBOL
1043 EVENT2_EXPORT_SYMBOL
1054 EVENT2_EXPORT_SYMBOL
1070 EVENT2_EXPORT_SYMBOL
EVENT2_EXPORT_SYMBOL struct evbuffer_ptr evbuffer_search(struct evbuffer *buffer, const char *what, size_t len, const struct evbuffer_ptr *start)
Definition: buffer.c:2715
EVENT2_EXPORT_SYMBOL int evbuffer_drain(struct evbuffer *buf, size_t len)
Definition: buffer.c:1101
EVENT2_EXPORT_SYMBOL void evbuffer_file_segment_free(struct evbuffer_file_segment *seg)
Definition: buffer.c:3155
EVENT2_EXPORT_SYMBOL int evbuffer_prepend(struct evbuffer *buf, const void *data, size_t size)
Definition: buffer.c:1827
evbuffer_ptr_how
Definition: buffer.h:768
@ EVBUFFER_PTR_ADD
Definition: buffer.h:773
@ EVBUFFER_PTR_SET
Definition: buffer.h:771
EVENT2_EXPORT_SYMBOL int evbuffer_reserve_space(struct evbuffer *buf, ev_ssize_t size, struct evbuffer_iovec *vec, int n_vec)
Definition: buffer.c:671
EVENT2_EXPORT_SYMBOL int evbuffer_prepend_buffer(struct evbuffer *dst, struct evbuffer *src)
Definition: buffer.c:1055
EVENT2_EXPORT_SYMBOL int evbuffer_ptr_set(struct evbuffer *buffer, struct evbuffer_ptr *ptr, size_t position, enum evbuffer_ptr_how how)
Definition: buffer.c:2623
EVENT2_EXPORT_SYMBOL int evbuffer_clear_flags(struct evbuffer *buf, ev_uint64_t flags)
Definition: buffer.c:387
EVENT2_EXPORT_SYMBOL void evbuffer_unlock(struct evbuffer *buf)
Definition: buffer.c:601
EVENT2_EXPORT_SYMBOL int evbuffer_read(struct evbuffer *buffer, evutil_socket_t fd, int howmuch)
Definition: buffer.c:2284
EVENT2_EXPORT_SYMBOL struct evbuffer_ptr evbuffer_search_eol(struct evbuffer *buffer, struct evbuffer_ptr *start, size_t *eol_len_out, enum evbuffer_eol_style eol_style)
Definition: buffer.c:1597
EVENT2_EXPORT_SYMBOL int evbuffer_freeze(struct evbuffer *buf, int at_front)
Definition: buffer.c:3401
EVENT2_EXPORT_SYMBOL int evbuffer_add_file_segment(struct evbuffer *buf, struct evbuffer_file_segment *seg, ev_off_t offset, ev_off_t length)
Definition: buffer.c:3194
EVENT2_EXPORT_SYMBOL int evbuffer_add_reference(struct evbuffer *outbuf, const void *data, size_t datlen, evbuffer_ref_cleanup_cb cleanupfn, void *cleanupfn_arg)
Definition: buffer.c:2921
EVENT2_EXPORT_SYMBOL struct evbuffer_cb_entry * evbuffer_add_cb(struct evbuffer *buffer, evbuffer_cb_func cb, void *cbarg)
Definition: buffer.c:3334
EVENT2_EXPORT_SYMBOL struct evbuffer_ptr evbuffer_search_range(struct evbuffer *buffer, const char *what, size_t len, const struct evbuffer_ptr *start, const struct evbuffer_ptr *end)
Definition: buffer.c:2721
EVENT2_EXPORT_SYMBOL ev_ssize_t evbuffer_copyout_from(struct evbuffer *buf, const struct evbuffer_ptr *pos, void *data_out, size_t datlen)
Definition: buffer.c:1190
EVENT2_EXPORT_SYMBOL size_t evbuffer_get_contiguous_space(const struct evbuffer *buf)
Definition: buffer.c:621
EVENT2_EXPORT_SYMBOL int evbuffer_add_file(struct evbuffer *outbuf, int fd, ev_off_t offset, ev_off_t length)
Definition: buffer.c:3296
EVENT2_EXPORT_SYMBOL int evbuffer_add_buffer_reference(struct evbuffer *outbuf, struct evbuffer *inbuf)
Definition: buffer.c:1012
void(* evbuffer_ref_cleanup_cb)(const void *data, size_t datalen, void *extra)
Definition: buffer.h:475
EVENT2_EXPORT_SYMBOL int evbuffer_write_atmost(struct evbuffer *buffer, evutil_socket_t fd, ev_ssize_t howmuch)
Definition: buffer.c:2524
EVENT2_EXPORT_SYMBOL struct evbuffer * evbuffer_new(void)
Definition: buffer.c:362
EVENT2_EXPORT_SYMBOL int evbuffer_write(struct evbuffer *buffer, evutil_socket_t fd)
Definition: buffer.c:2572
EVENT2_EXPORT_SYMBOL size_t evbuffer_get_length(const struct evbuffer *buf)
Definition: buffer.c:607
EVENT2_EXPORT_SYMBOL int evbuffer_remove_buffer(struct evbuffer *src, struct evbuffer *dst, size_t datlen)
Definition: buffer.c:1260
EVENT2_EXPORT_SYMBOL int evbuffer_set_flags(struct evbuffer *buf, ev_uint64_t flags)
Definition: buffer.c:378
EVENT2_EXPORT_SYMBOL int evbuffer_add(struct evbuffer *buf, const void *data, size_t datlen)
Definition: buffer.c:1730
EVENT2_EXPORT_SYMBOL char * evbuffer_readln(struct evbuffer *buffer, size_t *n_read_out, enum evbuffer_eol_style eol_style)
Definition: buffer.c:1687
EVENT2_EXPORT_SYMBOL int evbuffer_expand(struct evbuffer *buf, size_t datlen)
Definition: buffer.c:2161
void(* evbuffer_cb_func)(struct evbuffer *buffer, const struct evbuffer_cb_info *info, void *arg)
Definition: buffer.h:888
EVENT2_EXPORT_SYMBOL int evbuffer_defer_callbacks(struct evbuffer *buffer, struct event_base *base)
Definition: buffer.c:411
void(* evbuffer_file_segment_cleanup_cb)(struct evbuffer_file_segment const *seg, int flags, void *arg)
Definition: buffer.h:569
EVENT2_EXPORT_SYMBOL struct evbuffer_file_segment * evbuffer_file_segment_new(int fd, ev_off_t offset, ev_off_t length, unsigned flags)
Definition: buffer.c:2964
EVENT2_EXPORT_SYMBOL int evbuffer_remove(struct evbuffer *buf, void *data, size_t datlen)
Definition: buffer.c:1170
EVENT2_EXPORT_SYMBOL int evbuffer_peek(struct evbuffer *buffer, ev_ssize_t len, struct evbuffer_ptr *start_at, struct evbuffer_iovec *vec_out, int n_vec)
Definition: buffer.c:2785
EVENT2_EXPORT_SYMBOL void evbuffer_file_segment_add_cleanup_cb(struct evbuffer_file_segment *seg, evbuffer_file_segment_cleanup_cb cb, void *arg)
Definition: buffer.c:3146
EVENT2_EXPORT_SYMBOL void evbuffer_free(struct evbuffer *buf)
Definition: buffer.c:588
EVENT2_EXPORT_SYMBOL int evbuffer_commit_space(struct evbuffer *buf, struct evbuffer_iovec *vec, int n_vecs)
Definition: buffer.c:724
EVENT2_EXPORT_SYMBOL int evbuffer_add_vprintf(struct evbuffer *buf, const char *fmt, va_list ap)
Definition: buffer.c:2844
EVENT2_EXPORT_SYMBOL int evbuffer_remove_cb(struct evbuffer *buffer, evbuffer_cb_func cb, void *cbarg)
Definition: buffer.c:3360
EVENT2_EXPORT_SYMBOL int evbuffer_add_printf(struct evbuffer *buf, const char *fmt,...)
Definition: buffer.c:2908
EVENT2_EXPORT_SYMBOL size_t evbuffer_add_iovec(struct evbuffer *buffer, struct evbuffer_iovec *vec, int n_vec)
Definition: buffer.c:635
EVENT2_EXPORT_SYMBOL unsigned char * evbuffer_pullup(struct evbuffer *buf, ev_ssize_t size)
Definition: buffer.c:1350
evbuffer_eol_style
Definition: buffer.h:397
@ EVBUFFER_EOL_CRLF
Definition: buffer.h:410
@ EVBUFFER_EOL_NUL
Definition: buffer.h:416
@ EVBUFFER_EOL_CRLF_STRICT
Definition: buffer.h:412
@ EVBUFFER_EOL_ANY
Definition: buffer.h:407
@ EVBUFFER_EOL_LF
Definition: buffer.h:414
EVENT2_EXPORT_SYMBOL int evbuffer_remove_cb_entry(struct evbuffer *buffer, struct evbuffer_cb_entry *ent)
Definition: buffer.c:3349
EVENT2_EXPORT_SYMBOL int evbuffer_cb_clear_flags(struct evbuffer *buffer, struct evbuffer_cb_entry *cb, ev_uint32_t flags)
Definition: buffer.c:3389
EVENT2_EXPORT_SYMBOL int evbuffer_unfreeze(struct evbuffer *buf, int at_front)
Definition: buffer.c:3413
EVENT2_EXPORT_SYMBOL int evbuffer_cb_set_flags(struct evbuffer *buffer, struct evbuffer_cb_entry *cb, ev_uint32_t flags)
Definition: buffer.c:3377
EVENT2_EXPORT_SYMBOL int evbuffer_enable_locking(struct evbuffer *buf, void *lock)
Definition: buffer.c:424
EVENT2_EXPORT_SYMBOL int evbuffer_add_buffer(struct evbuffer *outbuf, struct evbuffer *inbuf)
Definition: buffer.c:966
EVENT2_EXPORT_SYMBOL ev_ssize_t evbuffer_copyout(struct evbuffer *buf, void *data_out, size_t datlen)
Definition: buffer.c:1184
EVENT2_EXPORT_SYMBOL void evbuffer_lock(struct evbuffer *buf)
Definition: buffer.c:595
Definition: evbuffer-internal.h:62
union evbuffer_cb_entry::@1 cb
ev_uint32_t flags
Definition: evbuffer-internal.h:75
void * cbarg
Definition: evbuffer-internal.h:73
size_t orig_size
Definition: buffer.h:862
size_t n_deleted
Definition: buffer.h:866
size_t n_added
Definition: buffer.h:864
Definition: evbuffer-internal.h:235
ev_off_t length
Definition: evbuffer-internal.h:261
unsigned flags
Definition: evbuffer-internal.h:238
int fd
Definition: evbuffer-internal.h:245
size_t iov_len
Definition: buffer.h:137
void * iov_base
Definition: buffer.h:135
Definition: evbuffer-internal.h:80
void * lock
Definition: evbuffer-internal.h:113
ev_uint32_t flags
Definition: evbuffer-internal.h:135
Definition: event-internal.h:208
#define evutil_socket_t
Definition: util.h:310