c_bool d_readerRequestAddChain( d_readerRequest request, d_chain chain) { c_bool result; d_chain found; assert(d_objectIsValid(d_object(request), D_READER_REQUEST) == TRUE); assert(d_objectIsValid(d_object(chain), D_CHAIN) == TRUE); if(request && chain){ d_lockLock(d_lock(request)); found = d_tableInsert(request->requests, chain); d_lockUnlock(d_lock(request)); if(found){ result = FALSE; } else { d_objectKeep(d_object(chain)); result = TRUE; } } else { result = FALSE; } return result; }
c_bool d_readerRequestAddGroup( d_readerRequest request, d_group group) { c_bool result; d_group found; assert(d_objectIsValid(d_object(request), D_READER_REQUEST) == TRUE); if(request){ d_lockLock(d_lock(request)); found = d_tableInsert(request->groups, group); d_lockUnlock(d_lock(request)); if(!found){ d_objectKeep(d_object(group)); result = TRUE; } else { result = FALSE; } } else { result = FALSE; } return result; }
static void collectNsWalk( d_nameSpace ns, void* userData) { c_iter nameSpaces = (c_iter)userData; if (ns) { d_objectKeep(d_object(ns)); c_iterInsert (nameSpaces, ns); } }
static c_bool addGroup( d_group group, c_voidp args) { d_table table; table = d_table(args); d_tableInsert(table, d_objectKeep(d_object(group))); return TRUE; }