1 #ifndef NCHAN_MSG_H 2 #define NCHAN_MSG_H 3 ngx_int_t msg_reserve(nchan_msg_t *msg, char *lbl); 4 ngx_int_t msg_release(nchan_msg_t *msg, char *lbl); 5 int msg_refcount_valid(nchan_msg_t *msg); 6 int msg_refcount_invalidate_if_zero(nchan_msg_t *msg); 7 void msg_refcount_invalidate(nchan_msg_t *msg); 8 9 void nchan_expand_msg_id_multi_tag(nchan_msg_id_t *id, uint8_t in_n, uint8_t out_n, int16_t fill); 10 ngx_int_t nchan_copy_msg_id(nchan_msg_id_t *dst, nchan_msg_id_t *src, int16_t *largetags); 11 ngx_int_t nchan_copy_new_msg_id(nchan_msg_id_t *dst, nchan_msg_id_t *src); 12 ngx_int_t nchan_free_msg_id(nchan_msg_id_t *id); 13 14 ngx_int_t nchan_parse_compound_msgid(nchan_msg_id_t *id, ngx_str_t *str, ngx_int_t expected_tag_count); 15 void nchan_update_multi_msgid(nchan_msg_id_t *oldid, nchan_msg_id_t *newid, int16_t *largetags); 16 ngx_int_t update_subscriber_last_msg_id(subscriber_t *sub, nchan_msg_t *msg); 17 nchan_msg_id_t *nchan_subscriber_get_msg_id(ngx_http_request_t *r); 18 ngx_int_t nchan_extract_from_multi_msgid(nchan_msg_id_t *src, uint16_t n, nchan_msg_id_t *dst); 19 20 int8_t nchan_compare_msgid_tags(nchan_msg_id_t *id1, nchan_msg_id_t *id2); 21 int8_t nchan_compare_msgids(nchan_msg_id_t *id1, nchan_msg_id_t *id2); 22 23 int nchan_msgid_tagcount_match(nchan_msg_id_t *id, int count); 24 25 void nchan_expand_tiny_msgid(nchan_msg_tiny_id_t *tinyid, nchan_msg_id_t *id); 26 void nchan_shrink_normal_msgid(nchan_msg_id_t *id, nchan_msg_tiny_id_t *tinyid); 27 28 29 nchan_msg_t *nchan_msg_derive_alloc(nchan_msg_t *parent); 30 nchan_msg_t *nchan_msg_derive_palloc(nchan_msg_t *parent, ngx_pool_t *pool); 31 nchan_msg_t *nchan_msg_derive_stack(nchan_msg_t *parent, nchan_msg_t *child, int16_t *largetags); 32 33 34 35 #endif //NCHAN_MSG_H 36