Writing your own hdf5 virtual file driver vfd
Download
1 / 6

Writing Your Own HDF5 Virtual File Driver (VFD) - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

Writing Your Own HDF5 Virtual File Driver (VFD). Dana Robinson The HDF Group. Efficient Use of HDF5 With High Data Rate X-Ray Detectors Paul Scherrer Institut. Main Idea: Users should be able to write their own VFD without having to rebuild the HDF5 library. HDF5 Library. HDF5 API.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Writing Your Own HDF5 Virtual File Driver (VFD)' - lynde


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Writing your own hdf5 virtual file driver vfd

Writing Your Own HDF5Virtual File Driver (VFD)

Dana Robinson

The HDF Group

Efficient Use of HDF5 With High Data Rate X-Ray Detectors

Paul ScherrerInstitut


Main Idea:

Users should be able to write their own VFD without having to rebuild the HDF5 library.


HDF5 Library

HDF5 API

Virtual File Layer

VFD

VFD

User-Supplied VFD

disk


What do i have to do
What do I have to do?

1) Implement H5FDset_fapl_foo().

This will need to work with H5Pset_driver()

2) Implement appropriate VFD functions – read, write, etc.

3) Compile your code into a library or directly into your app.


Demo vfd
"Demo" VFD

The STDIO VFD is a demo driver which uses no internal HDF5 calls.

Not intended for production use!

Unfortunately, this means that you do not get HDF5's platform-independent wrapper functions.

Can copy and paste as a basis for your own VFD.


static const H5FD_class_t H5FD_sec2_g = {

"sec2", /*name */

MAXADDR, /*maxaddr*/

H5F_CLOSE_WEAK, /*fc_degree*/

H5FD_sec2_term, /*terminate */

NULL, /*sb_size*/

NULL, /*sb_encode*/

NULL, /*sb_decode*/

0, /*fapl_size*/

NULL, /*fapl_get*/

NULL, /*fapl_copy*/

NULL, /*fapl_free*/

0, /*dxpl_size*/

NULL, /*dxpl_copy*/

NULL, /*dxpl_free*/

H5FD_sec2_open, /*open */

H5FD_sec2_close, /*close */

H5FD_sec2_cmp, /*cmp*/

H5FD_sec2_query, /*query */

NULL, /*get_type_map*/

NULL, /*alloc*/

NULL, /*free */

H5FD_sec2_get_eoa, /*get_eoa*/

H5FD_sec2_set_eoa, /*set_eoa*/

H5FD_sec2_get_eof, /*get_eof*/

H5FD_sec2_get_handle, /*get_handle*/

H5FD_sec2_read, /*read */

H5FD_sec2_write, /*write */

NULL, /*flush */

H5FD_sec2_truncate,/*truncate */

NULL, /*lock */

NULL, /*unlock */

H5FD_FLMAP_SINGLE /*fl_map*/

};

Each VFD contains a struct which maps our abstract VFL calls to your VFDs functions

Use NULL when not implemented


ad