dr_metalib_source_t dr_metalib_source_find(dr_metalib_builder_t builder, const char * name) { struct dr_metalib_source key; key.m_name = name; return (dr_metalib_source_t)cpe_hash_table_find(&builder->m_sources, &key); }
dr_dm_data_t dr_dm_data_find_by_index_ctype(dr_dm_manage_t mgr, const char * idx_name, const void * input, int input_type) { struct dr_dm_data_index index_key; struct dr_dm_data_index * index; dr_dm_data_t key; index_key.m_name = idx_name; index = (struct dr_dm_data_index *) cpe_hash_table_find(&mgr->m_indexes, &index_key); if (index == NULL) return NULL; key = dr_dm_manage_key_buf(mgr); if (dr_entry_set_from_ctype( dr_dm_data_data(key), input, input_type, index->m_entry, NULL) != 0) { return NULL; } return (dr_dm_data_t)cpe_hash_table_find(&index->m_roles, key); }
dr_dm_data_t dr_dm_data_find_by_id(dr_dm_manage_t mgr, dr_dm_data_id_t id) { dr_dm_data_t key; if (mgr->m_id_index == NULL) return NULL; key = dr_dm_manage_key_buf(mgr); if (dr_entry_set_from_uint64( (char*)dr_dm_data_data(key) + dr_entry_data_start_pos(mgr->m_id_index->m_entry) , id, mgr->m_id_index->m_entry, NULL) != 0) return NULL; return (dr_dm_data_t)cpe_hash_table_find(&mgr->m_id_index->m_roles, key); }