mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-25 17:00:45 +08:00
[svn-r5427] Purpose:
New Feature - per library change Description: Added new member function DataSet::fillMemBuf for the new C API H5Dfill. Quincey's description of H5Dfill is as followed: Added new H5Dfill() routine to fill the elements in a selection for a memory buffer with a fill value. This is a user API wrapper around some internal routines which were needed for the fill-value modifications from Raymond as well as Pedro's code for reducing the size of a chunked dataset. Platforms: SunOS 5.7 (arabica) Linux 6.2 (eirene)
This commit is contained in:
parent
de3af15daf
commit
97a2a55cf4
@ -180,6 +180,47 @@ void DataSet::extend( const hsize_t* size ) const
|
||||
}
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
NAME
|
||||
fillMemBuf
|
||||
PURPOSE
|
||||
Fills a selection in memory with a value
|
||||
USAGE
|
||||
fillMemBuf(fill, fill_type, buf, buf_type, space)
|
||||
fillMemBuf(buf, buf_type, space)
|
||||
void *buf; IN/OUT: Memory buffer to fill selection within
|
||||
DataType& buf_type; IN: Datatype of the elements in buffer
|
||||
DataSpace& space; IN: Dataspace describing memory buffer &
|
||||
containing selection to use.
|
||||
const void *fill; IN: Pointer to fill value to use - default NULL
|
||||
DataType& fill_type; IN: Datatype of the fill value
|
||||
DESCRIPTION
|
||||
Use the selection in the dataspace to fill elements in a memory buffer.
|
||||
COMMENTS, BUGS, ASSUMPTIONS
|
||||
Second usage uses all zeros as fill value
|
||||
--------------------------------------------------------------------------*/
|
||||
void DataSet::fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataType& buf_type, DataSpace& space)
|
||||
{
|
||||
hid_t fill_type_id = fill_type.getId();
|
||||
hid_t buf_type_id = buf_type.getId();
|
||||
hid_t space_id = space.getId();
|
||||
herr_t ret_value = H5Dfill(fill, fill_type_id, buf, buf_type_id, space_id);
|
||||
if( ret_value < 0 )
|
||||
{
|
||||
throw DataSetIException("DataSet::fillMemBuf", "H5Dfill failed");
|
||||
}
|
||||
}
|
||||
void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space)
|
||||
{
|
||||
hid_t buf_type_id = buf_type.getId();
|
||||
hid_t space_id = space.getId();
|
||||
herr_t ret_value = H5Dfill(NULL, buf_type_id, buf, buf_type_id, space_id);
|
||||
if( ret_value < 0 )
|
||||
{
|
||||
throw DataSetIException("DataSet::fillMemBuf", "H5Dfill failed");
|
||||
}
|
||||
}
|
||||
|
||||
// This private function calls the C API H5Dclose to close this dataset.
|
||||
// Used by IdComponent::reset
|
||||
void DataSet::p_close() const
|
||||
|
@ -39,10 +39,14 @@ class __DLLCPP__ DataSet : public AbstractDs {
|
||||
// Extends the dataset with unlimited dimension.
|
||||
void extend( const hsize_t* size ) const;
|
||||
|
||||
// Fills a selection in memory with a value
|
||||
void fillMemBuf(const void *fill, DataType& fill_type, void *buf, DataType& buf_type, DataSpace& space);
|
||||
// Fills a selection in memory with zero
|
||||
void fillMemBuf(void *buf, DataType& buf_type, DataSpace& space);
|
||||
|
||||
// Creates a copy of an existing DataSet using its id
|
||||
// (used only by template functions in FGtemplates.h
|
||||
// to return a DataSet, will not be published; Note: should use
|
||||
// friend template function)
|
||||
// Note: used by CommonFG to return a DataSet; should be modified
|
||||
// to use friend template function instead)
|
||||
DataSet( const hid_t dataset_id );
|
||||
|
||||
// Used by the API to appropriately close a dataset
|
||||
|
Loading…
x
Reference in New Issue
Block a user