static ib_status_t cpy_psntsfw_cfg( ib_engine_t *ib, ib_mpool_t *mp, ib_mpool_t *local_mp, const ib_persist_fw_cfg_t *persist_fw_src, ib_persist_fw_cfg_t **persist_fw_dst ) { assert(ib != NULL); assert(mp != NULL); assert(local_mp != NULL); assert(persist_fw_src != NULL); assert(persist_fw_dst != NULL); ib_list_t *list = NULL; ib_list_node_t *list_node; ib_status_t rc; ib_persist_fw_cfg_t *persist_fw_out; rc = ib_persist_fw_cfg_create(mp, &persist_fw_out); if (rc != IB_OK) { ib_log_error(ib, "Failed to create new persist_fw_cfg."); return rc; } rc = ib_list_create(&list, local_mp); if (rc != IB_OK) { return rc; } /* Copy the src store hash to the dst store hash. */ if (ib_hash_size(persist_fw_src->stores) > 0) { rc = ib_hash_get_all(persist_fw_src->stores, list); if (rc != IB_OK) { ib_log_error(ib, "Failed to get entries from hash."); return rc; } IB_LIST_LOOP(list, list_node) { ib_persist_fw_store_t *store = (ib_persist_fw_store_t *)ib_list_node_data_const(list_node); rc = ib_hash_set(persist_fw_out->stores, store->name, store); if (rc != IB_OK) { ib_log_error(ib, "Failed to set store %s", store->name); return rc; } }
/** * Fetch all values into a list. * * Consider using iterators instead. * * @param[in] list List to write values to. **/ void get_all(List<T>& list) const { throw_if_error(ib_hash_get_all(ib(), list.ib())); }