static void init_mtbl(void) { struct mtbl_merger_options *mopt; struct mtbl_writer_options *wopt; mopt = mtbl_merger_options_init(); wopt = mtbl_writer_options_init(); mtbl_merger_options_set_merge_func(mopt, merge_func, user_clos); mtbl_writer_options_set_compression(wopt, opt_compression_type); mtbl_writer_options_set_block_size(wopt, opt_block_size); merger = mtbl_merger_init(mopt); assert(merger != NULL); fprintf(stderr, "%s: opening output file %s\n", program_name, mtbl_output_fname); writer = mtbl_writer_init(mtbl_output_fname, wopt); if (writer == NULL) { fprintf(stderr, "Error: mtbl_writer_init() failed.\n\n"); usage(); } mtbl_merger_options_destroy(&mopt); mtbl_writer_options_destroy(&wopt); }
static void init_mtbl(int fd) { struct mtbl_writer_options *writer_options = mtbl_writer_options_init(); assert(writer_options != NULL); mtbl_writer_options_set_block_size(writer_options, 1024); struct mtbl_writer *writer = mtbl_writer_init_fd(fd, writer_options); assert(writer != NULL); /* Populate the mtbl with hex(i)->i */ for (uint32_t i = 0; i < NUM_KEYS; i++) { ubuf *key = ubuf_init(1); ubuf *value = ubuf_init(1); ubuf_add_fmt(key, KEY_FMT, i); ubuf_add_fmt(value, VAL_FMT, i); assert(mtbl_writer_add(writer, ubuf_data(key), ubuf_size(key), ubuf_data(value), ubuf_size(value)) == mtbl_res_success); ubuf_destroy(&key); ubuf_destroy(&value); } mtbl_writer_destroy(&writer); mtbl_writer_options_destroy(&writer_options); }