ГОСТ Р ИСО/ТС 10303-26—2015
С.6 Представление выбираемого типа данных языка EXPRESS, содержащего разные типы данных,
в HDF5
Следующая функция демонстрирует отображение выбираемого типа данных языка EXPRESS на состав
ной тип данных HDF5 с использованием API HDF5. В частности, показано, как выбираемый тип данных ‘Ccolour"
языка EXPRESS, определенный в приведенной выше контекстной схеме, отображается на HDF5. Правила,
при меняемыедля выполнения данного отображения, описаны в 5.8.2.3.
/ / ...............................- ...........- ...........- .........................— ------------------------------- ---------
-------
// Define Colour:
/ /
// Exemplifies how select types are encoded
/ / - —
..........
- ---------------------------------------------------------------------------------------- ....................
herr_t define_compound_colour(hid_t group_id, hid_t eer.um_col_tid,
hid_t *cc_tid)
{
herr_t rstat;
hid_t c_tid;
hidt string_tid;
*cc_tid --1;
string_tid - НБТсору(H5T_C_S1);
if(rstat - H5Tset_size(string_tid, H5T_VARIABLE)) goto err;
/ /
// Create named compound type for COLOUR
/ /
c_tid - H5Tcreate (H5T_COMPOUND, sizeof(colour_t));
if(rstat - H5Tinsert(c_tid, "select_bitmap", HOFFSET(coiour_t,
select_bitmap), H5T_NATIVE_LONG)) goto err;
if(rstat - H5Tinsert(c_tid, "s_colour", HOFFSET(colour_t,
s_colour), string_tid)) goto err;
if(rstat - H5Tinsert(c_tid, "e_colour", HOFFSET(colour_t,
e_colour), eenum_col_tid)) goto err;
if(rstat - H5Tcomrait2(group_id, "CColour", c_tidfH5P_DEFAULT,
H5P_DEFAULT,H5P_DEFAULT)> goto err;
*cc_tid - c_tid;
err:
return(rstat);
}
Следующий фрагмент текста представляет распечатку файла HDF5, показывающую, как реально выби
раемый тип данных “Ccolour" языка EXPRESS кодируется в HDF5.
HDF5 "example.h5" (
GROUP »/"
\
GROUP "Geometry_encoding" (
ATTRIBUTE "iso_l0303_26_schema" (
DATATYPE H5T_STRLNG (
STRSIZE 16;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASC1I;
CTYPE H5T_C_S1;
}
DATASPACE SCALAR
DATA (
(0): "Geometry schema"
l
>
DATATYPE "CColour" H5T COMPOUND {
H5T_STD_132LE "select_bitmap";
H5T STRING (
33