may 30-31, 2012 hdf5 workshop at psi may 30-31 writing your own hdf5 virtual file driver (vfd) dana...
TRANSCRIPT
![Page 1: May 30-31, 2012 HDF5 Workshop at PSI May 30-31 Writing Your Own HDF5 Virtual File Driver (VFD) Dana Robinson The HDF Group Efficient Use of HDF5 With High](https://reader036.vdocuments.us/reader036/viewer/2022082611/56649ec65503460f94bd2604/html5/thumbnails/1.jpg)
May 30-31, 2012 HDF5 Workshop at PSIMay 30-31
Writing Your Own HDF5Virtual File Driver (VFD)
Dana RobinsonThe HDF Group
Efficient Use of HDF5 With High Data Rate X-Ray DetectorsPaul Scherrer Institut
![Page 2: May 30-31, 2012 HDF5 Workshop at PSI May 30-31 Writing Your Own HDF5 Virtual File Driver (VFD) Dana Robinson The HDF Group Efficient Use of HDF5 With High](https://reader036.vdocuments.us/reader036/viewer/2022082611/56649ec65503460f94bd2604/html5/thumbnails/2.jpg)
May 30-31, 2012 HDF5 Workshop at PSI
Main Idea:
Users should be able to write their own VFD without having to rebuild the HDF5 library.
![Page 3: May 30-31, 2012 HDF5 Workshop at PSI May 30-31 Writing Your Own HDF5 Virtual File Driver (VFD) Dana Robinson The HDF Group Efficient Use of HDF5 With High](https://reader036.vdocuments.us/reader036/viewer/2022082611/56649ec65503460f94bd2604/html5/thumbnails/3.jpg)
May 30-31, 2012 HDF5 Workshop at PSI
HDF5 API
Virtual File Layer
VFD VFD User-Supplied VFD
disk
HDF5 Library
![Page 4: May 30-31, 2012 HDF5 Workshop at PSI May 30-31 Writing Your Own HDF5 Virtual File Driver (VFD) Dana Robinson The HDF Group Efficient Use of HDF5 With High](https://reader036.vdocuments.us/reader036/viewer/2022082611/56649ec65503460f94bd2604/html5/thumbnails/4.jpg)
May 30-31, 2012 HDF5 Workshop at PSI
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.
![Page 5: May 30-31, 2012 HDF5 Workshop at PSI May 30-31 Writing Your Own HDF5 Virtual File Driver (VFD) Dana Robinson The HDF Group Efficient Use of HDF5 With High](https://reader036.vdocuments.us/reader036/viewer/2022082611/56649ec65503460f94bd2604/html5/thumbnails/5.jpg)
May 30-31, 2012 HDF5 Workshop at PSI
"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.
![Page 6: May 30-31, 2012 HDF5 Workshop at PSI May 30-31 Writing Your Own HDF5 Virtual File Driver (VFD) Dana Robinson The HDF Group Efficient Use of HDF5 With High](https://reader036.vdocuments.us/reader036/viewer/2022082611/56649ec65503460f94bd2604/html5/thumbnails/6.jpg)
May 30-31, 2012 HDF5 Workshop at PSI
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