updf_dump

updf_dump saves a complete updf file in a directory. For storages a new subdirectory will be created. Properties will be saved in xml files. Streams will be saved in binary files.

bool = updf_dump(stg, ssDir)
bool = updf_dump(stg, ssDir, mode)

Return Value

bool is TRUE (1), if the function was successful and otherwise FALSE (0).

Parameters

stg

stg is a storage object (see updf_create_file, updf_open_file, updf_create_storage).

ssDir

ssDir is the name of a directory.

mode

Is one of the following values:

Value

Description

0 or UPDF_FAIL_IF_EXIST

This is the default value, if mode is not specified. If a file or a directory with the name ssDir already exists, the function will fail.

UPDF_REMOVE_DIRECTORY

The directory or file will be deleted.

UPDF_OVERWRITE

Directory or file will be overwritten.

UPDF_PROPSONLY

Saves only the properties of the storage stg.

Comment

The output of the properties are xml files with the extension ._props_. Example: If a stream “Test Stream” exists the file name would be “Test Stream._props_”.

<?xml version="1.0" encoding="utf-8" ?>
<props version="1.0">
  <p n="Units" t="s">
    <v>1/s</v>
  </p>
  <p n="add_offset" t="f">
    <v>17.2</v>
  </p>
</props>

The _props_ files contains three XML elements <props/>, <p/> and <v/>. <p/> has four attributes: n (Name), t (Typ), nr (Number of rows), nc (Number of columns). The following data types are available:

Value

Descripion

d

double

f

float

i8

int8. Signed 8 bit integer.

ui8

uint8

i16

int16

ui16

uint16

i32

int32

ui32

uint32

i64

int64

ui64

uint64

s

utf-8-String.

b

blob (binary large object) base64 coded.

The table identifier can have a suffix “v” for vector or “m” for matrix. Example: “ui64” (unsigned int 64 bits) “ui64v” (vector of “ui64”) “ui64m” (matrix of “ui64”). For a vector the attribute nr must be specified. For a matrix nr and nc must be specified.

Example

def test_updf_dump()
{
    ssPath = GetTempPath();
    ssFile = ssPath + "test-dump.updf";
    stg = updf_create_file(ssFile);

    props = updf_prop_open(stg);
    updf_prop_set_at(props, "double", updf_propval_new(1.23));
    updf_prop_set_at(props, "blob", updf_propval_new("a\0x0b", UPDF_BLOB));
    updf_prop_close(props);

    updf_dump(stg, ssFile + "-dir", UPDF_OVERWRITE);

    updf_close_storage(stg);

    stg = updf_create_file(ssPath + "test1.updf");
    updf_gen(stg, ssFile + "-dir");
    props = updf_prop_open(stg);

    pv = updf_prop_get_at(props, "double");
    if (type(pv) == "error") {
        error();
    }
    val = updf_propval_get(pv);
    if (val != 1.23) {
        error();
    }

    pv = updf_prop_get_at(props, "blob");
    if (type(pv) == "error") {
        error();
    }
    val = updf_propval_get(pv);
    if (val != "a\0x0b") {
        error();
    }

    updf_prop_close(props);
    updf_close_storage(stg);
}

test_updf_dump();

History

Version

Description

R2012.1 (5.40.1)

New flag UPDF_PROPSONLY.

5.6.0

New.

id-2043439