Design discussion for 2.X - pni-libraries/libpninexus GitHub Wiki
Right after the release of 1.X some design issues should be discussed that became visible with the new developments in the HDF5 library.
A short note on the current design
The actual design of the library was based on the assumption that in future there might be other physical file formats than HDF5 which should be used by the library. This lead to the current template version of the PIMPL pattern with
template<typename IMPT> class nxfield
{
};
where IMPT
denotes an implementation type. For every physical file format such an implementation type
would have been provided. Though this design looked reasonable at the time when the development was started,
in the light of recent events, concerning the actual development of the HDF5 library, it becomes more and more unlikely that there will ever be an alternative file format than HDF5.
This is particularly true as additional features have been added to HDF5 during the last years making the format more suited for the needs of the PNI community.
It is thus questionable if it is worth the effort to maintain such a complex design on the long run, or if it might be better to strip it down to an HDF5 only implementation. Such an approach would not only simplify the maintenance of the library but also allows a faster integration of new HDF5 features.