更改复合类型中的数组形状

时间:2016-06-22 17:35:28

标签: c++ hdf5

我是从结构

开始的
typedef struct SpikeInfo {
        uint64 timestamp;
        int recording;
        int16 waveform[MAX_TRANSFORM_SIZE];
    } SpikeInfo;

然后我创建一个HDF5复合数据类型:

CompType spiketype(sizeof(SpikeInfo));
hsize_t dims[2] = {MAX_TRANSFORM_SIZE/nChannels, nChannels};
spiketype.insertMember(H5std_string("waveform"), HOFFSET(SpikeInfo, waveform), ArrayType(getNativeType(I16), 2, dims));
spiketype.insertMember(H5std_string("recording"), HOFFSET(SpikeInfo, recording), getNativeType(U16));
spiketype.insertMember(H5std_string("timestamp"), HOFFSET(SpikeInfo, timestamp), getNativeType(U64));

因此,数组已分配MAX_TRANSFORM_SIZE/nChannels行。但是,我最有可能不断收到较少的数据(例如,行数仅为MAX_TRANSFORM_SIZE/nChannels的一半),然后我最终不得不用零填充其余数据,这会不必要地增加文件大小。我想知道是否有办法让ArrayType可调整大小,以便我可以在必要时将其设置得更大,但它起初很小。

我知道有一个类型VarLenType,但文档没有显示任何有用的方法。这样的事情有可能吗?

0 个答案:

没有答案