#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <assert.h>
#include <sofia-sip/su_config.h>
#include <sofia-sip/su_tag.h>
#include <sofia-sip/su_tag_class.h>
#include <sofia-sip/su_tag_inline.h>
#include <sofia-sip/su_tagarg.h>
Include dependency graph for su_taglist.c:

Functions | |
| int | t_snprintf (tagi_t const *t, char b[], size_t size) |
| Convert tag item to a string. | |
| tagi_t * | tl_next (tagi_t const *t) |
| Get next tag item from list. | |
| size_t | tl_tmove (tagi_t *dst, size_t size, tag_type_t t_tag, tag_value_t t_value,...) |
| Move a tag list. | |
| tagi_t * | tl_move (tagi_t *dst, tagi_t const src[]) |
| Move a tag list. | |
| size_t | tl_len (tagi_t const lst[]) |
| Calculate effective length of a tag list. | |
| size_t | tl_xtra (tagi_t const lst[], size_t offset) |
| Calculate the size of extra memory areas associated with tag list. | |
| tagi_t * | tl_dup (tagi_t dst[], tagi_t const src[], void **bb) |
| Duplicate a tag list. | |
| tagi_t * | tl_adup (su_home_t *home, tagi_t const lst[]) |
| Allocate and duplicate a tag list. | |
| tagi_t const * | tl_find (tagi_t const lst[], tag_type_t tt) |
| Find a tag from given list. | |
| int | tl_gets (tagi_t const lst[], tag_type_t tag, tag_value_t value,...) |
| Find tags from given list. | |
| int | tl_tgets (tagi_t lst[], tag_type_t tag, tag_value_t value,...) |
| Find tags from given list. | |
| tagi_t * | t_filter (tagi_t *dst, tagi_t const filter[], tagi_t const *src, void **bb) |
| Filter an element in tag list. | |
| tagi_t * | tl_afilter (su_home_t *home, tagi_t const filter[], tagi_t const src[]) |
| Filter a tag list. | |
| tagi_t * | tl_filtered_tlist (su_home_t *home, tagi_t const filter[], tag_type_t tag, tag_value_t value,...) |
| Create a filtered tag list. | |
| int | tl_tremove (tagi_t lst[], tag_type_t tag, tag_value_t value,...) |
| Remove listed tags from the list lst. | |
| size_t | tl_vlen (va_list ap) |
Calculate length of a tag list with a va_list. | |
| tagi_t * | tl_vlist (va_list ap) |
| Convert va_list to tag list. | |
| tagi_t * | tl_list (tag_type_t tag, tag_value_t value,...) |
| Make a tag list until TAG_NEXT() or TAG_END(). | |
| size_t | tl_vllen (tag_type_t tag, tag_value_t value, va_list ap) |
| Calculate length of a linear tag list. | |
| tagi_t * | tl_vllist (tag_type_t tag, tag_value_t value, va_list ap) |
| Make a linear tag list. | |
| tagi_t * | tl_llist (tag_type_t tag, tag_value_t value,...) |
| Make a linear tag list until TAG_END(). | |
| void | tl_vfree (tagi_t *t) |
| Free a tag list allocated by tl_list(), tl_llist() or tl_vlist(). | |
| int | t_scan (tag_type_t tt, su_home_t *home, char const *s, tag_value_t *return_value) |
| Convert string to a tag value. | |
Variables | |
| tag_class_t | cstr_tag_class [1] |
| Tag class for constant strings. | |
Filter a tag list.
The function tl_afilter() will build a tag list containing tags specified in filter and extracted from src. It will allocate the memory used by tag list via the specified memory home, which may be also NULL.
Duplicate a tag list.
The function tl_dup() deep copies the tag list src to the buffer dst. Memory areas associated with src are copied to buffer at **bb.
The size of the dst buffer must be at least tl_len(src) bytes. The size of buffer **bb must be at least tl_dup_xtra(src) bytes.
| dst | pointer to the destination buffer | |
| src | tag list to be duplicated | |
| bb | pointer to pointer to buffer |
Move a tag list.
The function tl_move() copies the tag list src to the buffer dst. The size of the dst list must be at least tl_len(src) bytes.
| dst | pointer to the destination buffer | |
| src | tag list to be moved |
| int tl_tgets | ( | tagi_t | lst[], | |
| tag_type_t | tag, | |||
| tag_value_t | value, | |||
| ... | ||||
| ) |
Find tags from given list.
The function tl_tgets() copies values of argument tag list into the tag list lst.
| size_t tl_tmove | ( | tagi_t * | dst, | |
| size_t | size, | |||
| tag_type_t | t_tag, | |||
| tag_value_t | t_value, | |||
| ... | ||||
| ) |
Move a tag list.
The function tl_tmove() moves the tag list arguments to dst. The dst must have big enough for all arguments.
| dst | pointer to the destination buffer | |
| size | sizeof dst | |
| t_tag,t_value,... | tag list |