int main() { Store *s, *d, *sprite_s, *pool_s, *elem_s; char *c; Scalar r; s = store_open(); { if (store_child_save(&sprite_s, "sprite", s)) { c = "hello, world"; string_save(&c, "prop1", sprite_s); c = "hello, world ... again"; string_save(&c, "prop2", sprite_s); r = SCALAR_INFINITY; scalar_save(&r, "prop6", sprite_s); if (store_child_save(&pool_s, "pool", sprite_s)) { store_child_save(&elem_s, "elem1", pool_s); store_child_save(&elem_s, "elem2", pool_s); } } } store_write_file(s, "test.sav"); store_close(s); /* ---- */ d = store_open_file("test.sav"); { if (store_child_load(&sprite_s, "sprite", d)) { printf("%s\n", sprite_s->name); string_load(&c, "prop1", "hai", sprite_s); printf(" prop1: %s\n", c); string_load(&c, "prop3", "hai", sprite_s); printf(" prop3: %s\n", c); string_load(&c, "prop2", "hai", sprite_s); printf(" prop2: %s\n", c); scalar_load(&r, "prop6", 4.2, sprite_s); printf(" prop6: %f\n", r); if (store_child_load(&pool_s, "pool", sprite_s)) while (store_child_load(&elem_s, NULL, pool_s)) printf(" %s\n", elem_s->name); } } store_close(d); return 0; }
char *test_close() { btree_destroy(s, root); store_close(s); return NULL; }
static void btree_thread_ui_free(struct bthread_info *ui) { int i; for (i = 0; i < MAX_THREAD; i++) { store_close(ui->node[i].store); btree_close(ui->node[i].tree); } free(ui); }
int linda_close(linda *l) { if (!l) return 0; if (l->st) store_close(l->st); if (l->sl) sb_destroy(l->sl); free(l); return 1; }
static void btree_ui_free(struct btree_info *ui) { store_close(ui->userinfo_store); btree_close(ui->tree); free(ui); }