All,
My project requires me to have forward and backward compatibility for
the hdf5 files written out across different versions of the application
. I am aware that hdf5 read does support compatibility to a certain
extent . i.e.
If I have a structure say S1
Struct S1
{
int a;
double b;
long c;
}
in one version( say V1) of application . and the next version of the
application removes the variable c from the structure , hdf5Read will be
able to identify if the variable c needs to be Read in that particular
version . This also holds good if another variable is added to S1 ( in
the new version ) .
This is a case where in the structure changes marginally . What if the
structure changes completely
Say in the next version( V2) S1 is defined as below
Struct S1
{
float a;
char* b;
};
In this case is the hdf5 file Created by V1 of the application will have
S1 different from what is expected by version V2 . Hd5 Read will not be
handling this implicitly .
One of the methods I have though of is :
The structure will have a default value associated with all its data
members . When a structure is being Read , instead of Reading the
structure as a whole data members will be Read individually . On failure
of Read of any data member , the default value ( predefined for the
application) will be used .
Queries - What are the implications of such Read on the performance ?
Can anyone suggest some other approach that can be followed .
Thanks and Regards
Ramakrishnan