updf_enum_beginΒΆ

updf_enum_begin can be used with updf_enum_next to iterate over all streams and storages of a storage object.

enum = updf_enum_begin(stg)

Return Value

enum.

Parameters

stg

stg.

Example

def test_updf_enum_begin()
{
    ssFile = GetTempPath() + "test-enum.updf";

    stg = updf_create_file(ssFile);
    stg1 = updf_create_storage(stg, "storage-1");
    f = updf_create_stream(stg1, "stream-1");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-2");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-3");
    updf_file_close(f);
    updf_close_storage(stg1);

    stg1 = updf_create_storage(stg, "storage-2");
    f = updf_create_stream(stg1, "stream-1");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-2");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-3");
    updf_file_close(f);
    updf_close_storage(stg1);

    updf_close_storage(stg);

    stg = updf_open_file(ssFile);
    dump_stg_tree(stg, "");
    updf_close_storage(stg);
}

def dump_stg_tree(stg, name)
{
    enu = updf_enum_begin(stg);
    while ((stat = updf_enum_next(enu)) != 0) {
        if (updf_stat_get_type(stat) == UPDF_STORAGE) {
//            printf("\\%s\n", updf_stat_get_name(stat));
            stg1 = updf_open_storage(stg, updf_stat_get_name(stat), 0);
            dump_stg_tree(stg1, updf_stat_get_name(stat));
            updf_close_storage(stg1);
        } else {
//            printf("\t%s,%d\n", updf_stat_get_name(stat), updf_stat_get_len(stat));
        }
    }
    updf_enum_close(enu);
}

test_updf_enum_begin();

History

Version Description
5.6.0 New

id-410456