LAL  7.5.0.1-bede9b2
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 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)
 
LALDict * XLALDictDuplicate (LALDict *old)
 
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 (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 (LALDict *dict, const char *key)
 
const char * XLALDictLookupStringValue (LALDict *dict, const char *key)
 
REAL8 XLALDictLookupValueAsREAL8 (LALDict *dict, const char *key)
 
static void XLALDictAsStringAppendValueFunc (char *key, LALValue *value, void *thunk)
 
char * XLALDictAsStringAppend (char *s, LALDict *list)
 
void XLALDictPrint (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)
 

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:313
@ XLAL_EFUNC
Internal function call failed bit: "or" this with existing error number.
Definition: XLALError.h:462

Definition at line 388 of file LALDict.c.

◆ DEFINE_LOOKUP_FUNC

#define DEFINE_LOOKUP_FUNC (   TYPE,
  FAILVAL 
)
Value:
TYPE XLALDictLookup ## TYPE ## Value(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(LALDict *dict, const char *key)
Definition: LALDict.c:282
const LALValue * XLALDictEntryGetValue(const LALDictEntry *entry)
Definition: LALDict.c:120
@ XLAL_ENAME
Wrong name.
Definition: XLALError.h:426

Definition at line 437 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.

◆ XLALDestroyDict()

void XLALDestroyDict ( LALDict *  dict)

Definition at line 127 of file LALDict.c.

◆ XLALCreateDict()

LALDict* XLALCreateDict ( void  )

Definition at line 138 of file LALDict.c.

◆ XLALDictForeach()

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

Definition at line 148 of file LALDict.c.

◆ XLALDictFind()

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

Definition at line 159 of file LALDict.c.

◆ XLALDictIterInit()

void XLALDictIterInit ( LALDictIter *  iter,
LALDict *  dict 
)

Definition at line 171 of file LALDict.c.

◆ XLALDictIterNext()

LALDictEntry* XLALDictIterNext ( LALDictIter *  iter)

Definition at line 179 of file LALDict.c.

◆ XLALDictDuplicate()

LALDict* XLALDictDuplicate ( LALDict *  old)

Definition at line 198 of file LALDict.c.

◆ XLALDictKeys()

LALList* XLALDictKeys ( const LALDict *  dict)

Definition at line 221 of file LALDict.c.

◆ XLALDictValues()

LALList* XLALDictValues ( const LALDict *  dict)

Definition at line 241 of file LALDict.c.

◆ XLALDictContains()

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

Definition at line 261 of file LALDict.c.

◆ XLALDictSize()

size_t XLALDictSize ( const LALDict *  dict)

Definition at line 270 of file LALDict.c.

◆ XLALDictLookup()

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

Definition at line 282 of file LALDict.c.

◆ XLALDictRemove()

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

Definition at line 291 of file LALDict.c.

◆ XLALDictInsert()

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

Definition at line 313 of file LALDict.c.

◆ XLALDictInsertValue()

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

Definition at line 365 of file LALDict.c.

◆ XLALDictInsertBLOBValue()

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

Definition at line 373 of file LALDict.c.

◆ XLALDictInsertStringValue()

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

Definition at line 380 of file LALDict.c.

◆ XLALDictLookupBLOBValue()

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

Definition at line 411 of file LALDict.c.

◆ XLALDictLookupStringValue()

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

Definition at line 425 of file LALDict.c.

◆ XLALDictLookupValueAsREAL8()

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

Definition at line 464 of file LALDict.c.

◆ XLALDictAsStringAppendValueFunc()

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

Definition at line 479 of file LALDict.c.

◆ XLALDictAsStringAppend()

char* XLALDictAsStringAppend ( char *  s,
LALDict *  list 
)

Definition at line 491 of file LALDict.c.

◆ XLALDictPrint()

void XLALDictPrint ( LALDict *  dict,
int  fd 
)

Definition at line 500 of file LALDict.c.