■
bucketメモリ操作関連
APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_copy(apr_bucket *a, apr_bucket **b)
apr_bucket_allocを呼び出し*bにセットしている。
apr_bucket_simple_split(apr_bucket *a, apr_size_t point) { ... apr_bucket_simple_copy(a, &b); a->length = point; b->length -= point; b->start += point; APR_BUCKET_INSERT_AFTER(a, b); ... }
apr_bucket_simple_copyを呼び出し、新しいbucketにaと同じデータ位置をセットしてbrigade(aの直後)にセットする。
- simple_bucket_read
static apr_status_t simple_bucket_read(apr_bucket *b, const char **str, apr_size_t *len, apr_read_type_e block) { *str = (char *)b->data + b->start; *len = b->length; return APR_SUCCESS; }