ГОСТ Р ИСОГГС 10303-26—2015
)
)
STRSIZE 16;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASCIi;
CTYPE H5T_C_S1;
)
DATASPACE SCALAR
DATA
\
(0): "Geometry_schema"
)
C.4 Отображение объектных типов данных языка EXPRESS
Следующая функция демонстрирует отображение объектного типа данных языка EXPRESS на составной
тип данных HDF5 с использованием API HDF5. В частности, показано как объект "Point" языка EXPRESS, опре
деленный в приведенной выше контекстной схеме, отображается на HDF5. Правила, применяемые для
выпол нения данного отображения, описаны в 6.6.
/ / ....................................- ------------------------------------------------- ..................- ..................- ................................................................................................
// Define Point:
/ /
// Only simple types are encoded is this case
/ / ...................- .................................................................................................................
.............
herr_t defir.e_compour.d_poir.t(hid_t group_id, hid_t *pp_tid>
i
herr_t rstat;
hid_t p_tid;
*pp_tid - -1;
/ /
// Create named compound type for POINT
/ /
p_tid - H5Tcreate (H5T_COMPOUND, sizeof(point_t));
if(rstat - H5Tinsert(p_tid, "set_unset_bitmap", HOFFSET<point_t,
set_ur.set_bitmap), H5T_NAT1VE_L0NG)
)
goto err;
if(rstat - H5Tinsert (p_tidf "Entity-Instar.ce-ldentifier",
HOFFSET(point_t, id), H5T_NATIVE_L0NG)) goto err;
if(rstat - H5Tinsert (p tid, "x", HOFFSET<poir.t_t, x),
H5T_NATlVE_DOUBLE)) goto err;
if(rstat - H5Tinsert(p_tid, "y", HOFFSET<point_t, y),
H5T_NATIVE_DOUBLE)) goto err;
if(rstat - H5Tcommit2(groupid, "Point", p_tid,H5P_DEFAULT,
H5P_DEFAULT,H5P_DEFAULT>) goto err;
•pp_tid - p_tid;
err:
return (rstat);
)
Следующий фрагмент кода используется для наполнения файла HDF5 с помощью создания экземпляров
составного типа данных HDF5. представляющего объект "Point", как это определено функцией
"define_compound_point".
♦include
♦include
"hdf5.h"
"examples.h"
♦define N0_0F_PP03NTS 4
/ / ----------------------------------
---------
------
-
..........
-
..........
- .............................................................................................
// Create Points:
28