/* * pocli_pmemobj_type_num -- pmemobj_type_num() command */ static enum pocli_ret pocli_pmemobj_type_num(struct pocli_ctx *ctx, struct pocli_args *args) { if (args->argc != 2) return POCLI_ERR_ARGS; PMEMoid *oidp = NULL; enum pocli_ret ret; ret = pocli_args_obj(ctx, args, 1, &oidp); if (ret) return ret; if (oidp == NULL) return pocli_err(ctx, POCLI_ERR_ARGS, "invalid object -- '%s'\n", args->argv[1]); uint64_t type_num = pmemobj_type_num(*oidp); pocli_printf(ctx, "%s(%s): type num = %llu\n", args->argv[0], args->argv[1], type_num); return POCLI_RET_OK; }
nodes_count = 0; POBJ_FOREACH(pop, oid_iter) { nodes_count++; } UT_ASSERTeq(nodes_count, 0); int val = 10; POBJ_ALLOC(pop, &node_constructed, struct dummy_node_c, sizeof(struct dummy_node_c), dummy_node_constructor, &val); POBJ_REALLOC(pop, &node_constructed, struct dummy_node_c, sizeof(struct dummy_node_c) + 1000); UT_ASSERTeq(pmemobj_type_num(node_constructed.oid), TOID_TYPE_NUM(struct dummy_node_c)); POBJ_ZREALLOC(pop, &node_constructed, struct dummy_node_c, sizeof(struct dummy_node_c) + 2000); UT_ASSERTeq(pmemobj_type_num(node_constructed.oid), TOID_TYPE_NUM(struct dummy_node_c)); POBJ_FREE(&node_constructed); POBJ_ZALLOC(pop, &node_zeroed, struct dummy_node, sizeof(struct dummy_node)); POBJ_FREE(&node_zeroed);