Dokumentace k souboru b_util.c

Popis souboru | Proměnné | Funkce

Popis souboru (1)

ruzne funkce: prace s binarnimi vyhledavacimi stromy prace s tokeny + dalsi

Proměnné (1)

JménoTypPočáteční hodnotaDokumentace
_statxchar[40]?buffer na formatovane datum (btime)

Funkce (35)

ModifikátorJménoParametryDokumentace
char *btime(const struct tm* t)naformatuje datum do stringu. Nelze pouzivat multithreaded
voidfatal(char *s)vyskoci s chybovou hlaskou. Dobre k debugovani
voidfatalf(char *fmt,...)jako fatal(), ale s formatovanym retezcem jako u printf
voidfreetoken(text_token *t)uvolni token z pameti, vcetne jeho vnitrku, tedy dat, ze kterych byl token vytvoren
uintgettickcount(void)vrati pocet milisekund od startu
text_tokentoken_create(void *source,int size)vytvori z danych dat parsovatelny token
inttoken_loadbinary(text_token *t,void *i,int s)nacte z tokenu kus binarnich dat
inttoken_loadfloatb(text_token *t,bfloat *v)nacte z tokenu float (binarni)
inttoken_loadintb(text_token *t,int *i)nacte z tokenu binarni integer
inttoken_loadlstring(text_token *t,char **c)nahraje retezec (delka+znaky) z tokenu
inttoken_loadvectorb(text_token *t,vector *v)nacte z tokenu vektor (binarni)
inttoken_readchar(text_token *t,char c)nacte znak z tokenu a odstrani ho. Vraci 1 pri uspechu, 0 pri chybe (je tam jiny znak, nebo tam neni zadny)
inttoken_readfloat(text_token *t,bfloat *f)nacte z tokenu jeden float
inttoken_readint(text_token *t,int *i)nacte z tokenu jeden integer
inttoken_readkv_sep(text_token *t,char **key,char **value,char separator)ze zacatku tokenu nacte a odstrani zaznam ve formatu key=value.
Misto = lze pouzit i jiny separator
POZOR! dealokovat se musi jenom key, nikdy ne value, nebot to je jeden buffer
char *token_readline(text_token *t)nacte z tokenu jednu neprazdnou radku
inttoken_readplainvector(text_token *t,vector *v)nacte z tokenu jeden vektor, format "x y z"
properties *token_readprop(text_token *t)ze zacatku tokenu nacte a odstrani zaznam ve formatu "key" "value"
char *token_readqstring(text_token *t)nacte retezec v uvozovkach z tokenu
char *token_readstring(text_token *t)nacte retezec z tokenu (znaky az do prvni whitespace nebo konce radky)
inttoken_readvector(text_token *t,vector *v)nacte z tokenu jeden vektor, format "(x y z)"
voidtoken_remove_rest_of_line(text_token *t)preskoci vse v tokenu az do konce radky
voidtoken_skip_trash(text_token *t)preskoci vsechny whitespacy a pokud narazi na komentar, tak i ten
voidtree_add(tree **t,const char *name,void *val1)prida do stromu polozku se jmenem name a hodnovou val1, pokud je jiz obsazena, neprida nic (a pokud je zapnuty debug tak rovnou fatalne spadne)
inttree_count(tree *t)vrati pocet prvku stromu
inttree_del(tree **t,const char *name)odstrani ze stormu polozku name
1 - polozka byla odstranena
0 - polozka tam nebyla
void *tree_delv(tree **t,const char *name)odstrani ze stormu polozku name a vrati ji (nebo NULL, pokud tam neni)
1 - polozka byla odstranena
0 - polozka tam nebyla
tree *tree_dup(const tree *t)zduplikuje dany strom - vytvori novou kopii
const tree *tree_element(const tree *t,int i)vytahne ze stromu ukazatel na list s prvek s cislem i (i je mezi 0 a (poctem prvku ve stromu -1)
Da se pouzit napr. pro prochazeni cleeho stropu, ackoliv tree_foreach / tree_foreach_p muze byt vhodnejsi
Pokud nastane chyba nebo je prvek mimo rozsah, vrati NULL
voidtree_foreach(tree *t,tree_func *f)zavola funkci na kazdy prvek stromu
voidtree_foreach_p(tree *t,tree_func_p *f,void *param)zavola funkci na kazdy prvek stromu (s extra parametrem)
voidtree_free(tree *t)odalokuje strom z pameti
voidtree_optimize(tree **t)vyvazi strom
void *tree_search(const tree *t,const char *name)prohleda strom jestli obsahuje polozku name a vrati ji, pokud neobsahuje, vraci 0
voidwriteln(char *s)vypise retezec a odradkuje

Dokumentace z 12.09.2003 18:06:39