SYNTAX
#include "constmap.h"
SYNOPSIS
int constmap_init(struct constmap *cm,char *string,int len,int
flagcolon);
int constmap_init_char(struct constmap *cm,char *string,int len,int
flagcolon,char flagchar);
char *constmap(struct constmap *cm,char *string,int len);
void constmap_free(struct constmap *cm);
DESCRIPTION
Reading a file perhaps with control_readfile(&cmap,"path/filename",0)
constmap_init can be used to convert its content into a constant time
search map: constmap. Here, you can specify whether the entries in
constmap are plain or key/value structured setting flagcolon to one and
assuming the delimiter equals to a colon: :. If the delimiter needs to
be particulary tailored, use constmap_init_char.
Given the search string and providing its length len (without the
trailing \0) constmap will now retrieve the information in constant
time returning a pointer to the search result or 0.
The datastructure can be freed by means of constmap_free.
EXAMPLE
#include <constmap.h>
struct constmap cmap;
stralloc result = {0};
char *info;
char *search;
if (control_readfile(&cmap,"control/conf",0))
constmap_init(&cmap,result.s,result.len,1));
info = constmap(&cmap,search,str_len (search));
if (!info) return 0;
SEE ALSO
cdbread(3), cdbmake(3)
qlibs:constmap(3)
Man(1) output converted with
man2html