Loading [MathJax]/extensions/TeX/AMSsymbols.js
LAL 7.7.0.1-da3b9d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
LALDict.c File Reference

Prototypes

static size_t hash (const char *s)
 
void XLALDictEntryFree (LALDictEntry *list)
 
LALDictEntry * XLALDictEntryAlloc (size_t size)
 
LALDictEntry * XLALDictEntryRealloc (LALDictEntry *entry, size_t size)
 
LALDictEntry * XLALDictEntrySetKey (LALDictEntry *entry, const char *key)
 
LALDictEntry * XLALDictEntrySetValue (LALDictEntry *entry, const void *data, size_t size, LALTYPECODE type)
 
const char * XLALDictEntryGetKey (const LALDictEntry *entry)
 
const LALValue * XLALDictEntryGetValue (const LALDictEntry *entry)
 
void XLALClearDict (LALDict *dict)
 
void XLALDestroyDict (LALDict *dict)
 
LALDict * XLALCreateDict (void)
 
void XLALDictForeach (LALDict *dict, void(*func)(char *, LALValue *, void *), void *thunk)
 
LALDictEntry * XLALDictFind (LALDict *dict, int(*func)(const char *, const LALValue *, void *), void *thunk)
 
void XLALDictIterInit (LALDictIter *iter, LALDict *dict)
 
LALDictEntry * XLALDictIterNext (LALDictIter *iter)
 
int XLALDictUpdate (LALDict *dst, const LALDict *src)
 
LALDict * XLALDictMerge (const LALDict *dict1, const LALDict *dict2)
 
LALDict * XLALDictDuplicate (const LALDict *orig)
 
LALList * XLALDictKeys (const LALDict *dict)
 
LALList * XLALDictValues (const LALDict *dict)
 
int XLALDictContains (const LALDict *dict, const char *key)
 
size_t XLALDictSize (const LALDict *dict)
 
LALDictEntry * XLALDictLookup (const LALDict *dict, const char *key)
 
LALDictEntry * XLALDictPop (LALDict *dict, const char *key)
 
int XLALDictRemove (LALDict *dict, const char *key)
 
int XLALDictInsert (LALDict *dict, const char *key, const void *data, size_t size, LALTYPECODE type)
 
int XLALDictInsertValue (LALDict *dict, const char *key, const LALValue *value)
 
int XLALDictInsertBLOBValue (LALDict *dict, const char *key, const void *blob, size_t size)
 
int XLALDictInsertStringValue (LALDict *dict, const char *key, const char *string)
 
void * XLALDictLookupBLOBValue (const LALDict *dict, const char *key)
 
const char * XLALDictLookupStringValue (const LALDict *dict, const char *key)
 
REAL8 XLALDictLookupValueAsREAL8 (const LALDict *dict, const char *key)
 
LALValue * XLALDictPopValue (LALDict *dict, const char *key)
 
void * XLALDictPopBLOBValue (LALDict *dict, const char *key)
 
char * XLALDictPopStringValue (LALDict *dict, const char *key)
 
REAL8 XLALDictPopValueAsREAL8 (LALDict *dict, const char *key)
 
static void XLALDictAsStringAppendValueFunc (char *key, LALValue *value, void *thunk)
 
char * XLALDictAsStringAppend (char *s, const LALDict *dict)
 
void XLALDictPrint (const LALDict *dict, int fd)
 

Go to the source code of this file.

Data Structures

struct  LALDictEntry
 
struct  LALDict
 
struct  LALDictAsStringAppendValueFuncParams
 

Macros

#define LAL_DICT_HASHSIZE   101
 
#define DEFINE_INSERT_FUNC(TYPE, TCODE)
 
#define DEFINE_LOOKUP_FUNC(TYPE, FAILVAL)
 
#define DEFINE_POP_FUNC(TYPE, FAILVAL)
 

Macro Definition Documentation

◆ LAL_DICT_HASHSIZE

#define LAL_DICT_HASHSIZE   101

Definition at line 38 of file LALDict.c.

◆ DEFINE_INSERT_FUNC

#define DEFINE_INSERT_FUNC (   TYPE,
  TCODE 
)
Value:
int XLALDictInsert ## TYPE ## Value(LALDict *dict, const char *key, TYPE value) \
{ \
if (XLALDictInsert(dict, key, &value, sizeof(value), TCODE) < 0) \
XLAL_ERROR(XLAL_EFUNC); \
return 0; \
}
#define TYPE
#define TCODE
int XLALDictInsert(LALDict *dict, const char *key, const void *data, size_t size, LALTYPECODE type)
Definition: LALDict.c:344
@ XLAL_EFUNC
Internal function call failed bit: "or" this with existing error number.
Definition: XLALError.h:462

Definition at line 419 of file LALDict.c.

◆ DEFINE_LOOKUP_FUNC

#define DEFINE_LOOKUP_FUNC (   TYPE,
  FAILVAL 
)
Value:
TYPE XLALDictLookup ## TYPE ## Value(const LALDict *dict, const char *key) \
{ \
LALDictEntry *entry; \
const LALValue *value; \
entry = XLALDictLookup(dict, key); \
if (entry == NULL) \
XLAL_ERROR_VAL(FAILVAL, XLAL_ENAME, "Key `%s' not found", key); \
value = XLALDictEntryGetValue(entry); \
if (value == NULL) \
XLAL_ERROR_VAL(FAILVAL, XLAL_EFUNC); \
return XLALValueGet ## TYPE (value); \
}
#define FAILVAL
LALDictEntry * XLALDictLookup(const LALDict *dict, const char *key)
Definition: LALDict.c:305
const LALValue * XLALDictEntryGetValue(const LALDictEntry *entry)
Definition: LALDict.c:120
@ XLAL_ENAME
Wrong name.
Definition: XLALError.h:426

Definition at line 467 of file LALDict.c.

◆ DEFINE_POP_FUNC

#define DEFINE_POP_FUNC (   TYPE,
  FAILVAL 
)
Value:
TYPE XLALDictPop ## TYPE ## Value(LALDict *dict, const char *key) \
{ \
LALDictEntry *entry; \
TYPE value; \
entry = XLALDictPop(dict, key); \
XLAL_CHECK_VAL(FAILVAL, entry, XLAL_EFUNC); \
value = XLALValueGet ## TYPE(XLALDictEntryGetValue(entry)); \
XLALDictEntryFree(entry); \
return value; \
}
LALDictEntry * XLALDictPop(LALDict *dict, const char *key)
Definition: LALDict.c:314

Definition at line 541 of file LALDict.c.

Function Documentation

◆ hash()

static size_t hash ( const char *  s)
static

Definition at line 51 of file LALDict.c.

◆ XLALDictEntryFree()

void XLALDictEntryFree ( LALDictEntry *  list)

Definition at line 61 of file LALDict.c.

◆ XLALDictEntryAlloc()

LALDictEntry * XLALDictEntryAlloc ( size_t  size)

Definition at line 73 of file LALDict.c.

◆ XLALDictEntryRealloc()

LALDictEntry * XLALDictEntryRealloc ( LALDictEntry *  entry,
size_t  size 
)

Definition at line 84 of file LALDict.c.

◆ XLALDictEntrySetKey()

LALDictEntry * XLALDictEntrySetKey ( LALDictEntry *  entry,
const char *  key 
)

Definition at line 97 of file LALDict.c.

◆ XLALDictEntrySetValue()

LALDictEntry * XLALDictEntrySetValue ( LALDictEntry *  entry,
const void *  data,
size_t  size,
LALTYPECODE  type 
)

Definition at line 106 of file LALDict.c.

◆ XLALDictEntryGetKey()

const char * XLALDictEntryGetKey ( const LALDictEntry *  entry)

Definition at line 114 of file LALDict.c.

◆ XLALDictEntryGetValue()

const LALValue * XLALDictEntryGetValue ( const LALDictEntry *  entry)

Definition at line 120 of file LALDict.c.

◆ XLALClearDict()

void XLALClearDict ( LALDict *  dict)

Definition at line 127 of file LALDict.c.

◆ XLALDestroyDict()

void XLALDestroyDict ( LALDict *  dict)

Definition at line 137 of file LALDict.c.

◆ XLALCreateDict()

LALDict * XLALCreateDict ( void  )

Definition at line 148 of file LALDict.c.

◆ XLALDictForeach()

void XLALDictForeach ( LALDict *  dict,
void(*)(char *, LALValue *, void *)  func,
void *  thunk 
)

Definition at line 158 of file LALDict.c.

◆ XLALDictFind()

LALDictEntry * XLALDictFind ( LALDict *  dict,
int(*)(const char *, const LALValue *, void *)  func,
void *  thunk 
)

Definition at line 169 of file LALDict.c.

◆ XLALDictIterInit()

void XLALDictIterInit ( LALDictIter *  iter,
LALDict *  dict 
)

Definition at line 181 of file LALDict.c.

◆ XLALDictIterNext()

LALDictEntry * XLALDictIterNext ( LALDictIter *  iter)

Definition at line 189 of file LALDict.c.

◆ XLALDictUpdate()

int XLALDictUpdate ( LALDict *  dst,
const LALDict *  src 
)

Definition at line 208 of file LALDict.c.

◆ XLALDictMerge()

LALDict * XLALDictMerge ( const LALDict *  dict1,
const LALDict *  dict2 
)

Definition at line 225 of file LALDict.c.

◆ XLALDictDuplicate()

LALDict * XLALDictDuplicate ( const LALDict *  orig)

Definition at line 239 of file LALDict.c.

◆ XLALDictKeys()

LALList * XLALDictKeys ( const LALDict *  dict)

Definition at line 244 of file LALDict.c.

◆ XLALDictValues()

LALList * XLALDictValues ( const LALDict *  dict)

Definition at line 264 of file LALDict.c.

◆ XLALDictContains()

int XLALDictContains ( const LALDict *  dict,
const char *  key 
)

Definition at line 284 of file LALDict.c.

◆ XLALDictSize()

size_t XLALDictSize ( const LALDict *  dict)

Definition at line 293 of file LALDict.c.

◆ XLALDictLookup()

LALDictEntry * XLALDictLookup ( const LALDict *  dict,
const char *  key 
)

Definition at line 305 of file LALDict.c.

◆ XLALDictPop()

LALDictEntry * XLALDictPop ( LALDict *  dict,
const char *  key 
)

Definition at line 314 of file LALDict.c.

◆ XLALDictRemove()

int XLALDictRemove ( LALDict *  dict,
const char *  key 
)

Definition at line 335 of file LALDict.c.

◆ XLALDictInsert()

int XLALDictInsert ( LALDict *  dict,
const char *  key,
const void *  data,
size_t  size,
LALTYPECODE  type 
)

Definition at line 344 of file LALDict.c.

◆ XLALDictInsertValue()

int XLALDictInsertValue ( LALDict *  dict,
const char *  key,
const LALValue *  value 
)

Definition at line 396 of file LALDict.c.

◆ XLALDictInsertBLOBValue()

int XLALDictInsertBLOBValue ( LALDict *  dict,
const char *  key,
const void *  blob,
size_t  size 
)

Definition at line 404 of file LALDict.c.

◆ XLALDictInsertStringValue()

int XLALDictInsertStringValue ( LALDict *  dict,
const char *  key,
const char *  string 
)

Definition at line 411 of file LALDict.c.

◆ XLALDictLookupBLOBValue()

void * XLALDictLookupBLOBValue ( const LALDict *  dict,
const char *  key 
)

Definition at line 442 of file LALDict.c.

◆ XLALDictLookupStringValue()

const char * XLALDictLookupStringValue ( const LALDict *  dict,
const char *  key 
)

Definition at line 455 of file LALDict.c.

◆ XLALDictLookupValueAsREAL8()

REAL8 XLALDictLookupValueAsREAL8 ( const LALDict *  dict,
const char *  key 
)

Definition at line 494 of file LALDict.c.

◆ XLALDictPopValue()

LALValue * XLALDictPopValue ( LALDict *  dict,
const char *  key 
)

Definition at line 507 of file LALDict.c.

◆ XLALDictPopBLOBValue()

void * XLALDictPopBLOBValue ( LALDict *  dict,
const char *  key 
)

Definition at line 518 of file LALDict.c.

◆ XLALDictPopStringValue()

char * XLALDictPopStringValue ( LALDict *  dict,
const char *  key 
)

Definition at line 529 of file LALDict.c.

◆ XLALDictPopValueAsREAL8()

REAL8 XLALDictPopValueAsREAL8 ( LALDict *  dict,
const char *  key 
)

Definition at line 566 of file LALDict.c.

◆ XLALDictAsStringAppendValueFunc()

static void XLALDictAsStringAppendValueFunc ( char *  key,
LALValue *  value,
void *  thunk 
)
static

Definition at line 579 of file LALDict.c.

◆ XLALDictAsStringAppend()

char * XLALDictAsStringAppend ( char *  s,
const LALDict *  dict 
)

Definition at line 591 of file LALDict.c.

◆ XLALDictPrint()

void XLALDictPrint ( const LALDict *  dict,
int  fd 
)

Definition at line 601 of file LALDict.c.