81  std::vector<std::string> IntLabels, DoubleLabels;
 
   82  std::vector<int> IntLabelsData;
 
   83  std::vector<double> DoubleLabelsData;
 
   85  obj.
GetLabels(IntLabels, IntLabelsData, DoubleLabels, DoubleLabelsData);
 
   89  for (
unsigned int i = 0; i < IntLabels.size(); ++i)
 
   90    Write(GroupName, IntLabels[i], IntLabelsData[i]);
 
   92  for (
unsigned int i = 0; i < DoubleLabels.size(); ++i)
 
   93    Write(GroupName, DoubleLabels[i], DoubleLabelsData[i]);
 
   99  std::vector<int> IntSize(NumMyElements);
 
  100  std::vector<int> DoubleSize(NumMyElements);
 
  102  int TotalIntSize = 0, TotalDoubleSize = 0;
 
  104  std::vector<int> IntData;
 
  105  std::vector<double> DoubleData;
 
  107  for (
int i = 0; i < NumMyElements; ++i)
 
  111    TotalIntSize += IntSize[i];
 
  112    TotalDoubleSize += DoubleSize[i];
 
  115  IntData.resize(TotalIntSize);
 
  116  DoubleData.resize(TotalDoubleSize);
 
  125  for (
int i = 0; i < NumMyElements; ++i)
 
  127    obj.
Pack(i, &IntData[IntCount], &DoubleData[DoubleCount]);
 
  128    IntCount += IntSize[i];
 
  129    DoubleCount += DoubleSize[i];
 
  135  Write(GroupName, 
"__type__", obj.
Type());
 
  136  Write(GroupName, 
"NumGlobalElements", NumGlobalElements);
 
  142    Write(GroupName, 
"int ptr", NumMyElements, 
 
  143          NumGlobalElements, H5T_NATIVE_INT, &IntSize[0]);
 
  144    Write(GroupName, 
"int data", NumMyElements, 
 
  145          NumGlobalElements, H5T_NATIVE_INT, &IntData[0]);
 
  150    Write(GroupName, 
"double ptr", NumMyElements, 
 
  151          NumGlobalElements, H5T_NATIVE_INT, &DoubleSize[0]);
 
  152    Write(GroupName, 
"double data", NumMyElements, 
 
  153          NumGlobalElements, H5T_NATIVE_DOUBLE, &DoubleData[0]);
 
 
  163  std::vector<std::string> IntLabels, DoubleLabels;
 
  166  std::vector<int> IntLabelsData(IntLabels.size());
 
  167  std::vector<double> DoubleLabelsData(DoubleLabels.size());
 
  169  for (
unsigned int i = 0; i < IntLabels.size(); ++i)
 
  170    Read(GroupName, IntLabels[i], IntLabelsData[i]);
 
  172  for (
unsigned int i = 0; i < DoubleLabels.size(); ++i)
 
  173    Read(GroupName, DoubleLabels[i], DoubleLabelsData[i]);
 
  175  std::vector<int> IntSize(NumMyElements);
 
  176  std::vector<int> DoubleSize(NumMyElements);
 
  178  int TotalIntSize = 0, TotalDoubleSize = 0;
 
  179  int GrandTotalIntSize = 0, GrandTotalDoubleSize = 0;
 
  184    Read(GroupName, 
"int ptr", NumMyElements, 
 
  185         NumGlobalElements, H5T_NATIVE_INT, &IntSize[0]);
 
  186    for (
int i = 0; i < NumMyElements; ++i)
 
  187      TotalIntSize += IntSize[i];
 
  188    Comm().SumAll(&TotalIntSize, &GrandTotalIntSize, 1);
 
  193    Read(GroupName, 
"double ptr", NumMyElements, 
 
  194         NumGlobalElements, H5T_NATIVE_INT, &DoubleSize[0]);
 
  195    for (
int i = 0; i < NumMyElements; ++i)
 
  197      TotalDoubleSize += DoubleSize[i];
 
  199    Comm().SumAll(&TotalDoubleSize, &GrandTotalDoubleSize, 1);
 
  202  std::vector<int> IntData(TotalIntSize + 1);
 
  203  std::vector<double> DoubleData(TotalDoubleSize + 1);
 
  207    Read(GroupName, 
"int data", TotalIntSize, 
 
  208         GrandTotalIntSize, H5T_NATIVE_INT, &IntData[0]);
 
  210    Read(GroupName, 
"double data", TotalDoubleSize, 
 
  211         GrandTotalDoubleSize, H5T_NATIVE_DOUBLE, &DoubleData[0]);
 
  216  obj.
SetLabels(IntLabelsData, DoubleLabelsData);
 
  218  int IntCount = 0, DoubleCount = 0;
 
  219  for (
int i = 0; i < NumMyElements; ++i)
 
  221    obj.
UnPack(i, IntSize[i], &(IntData[IntCount]),
 
  222               DoubleSize[i], &(DoubleData[DoubleCount]));
 
  223    IntCount += IntSize[i];
 
  224    DoubleCount += DoubleSize[i];
 
 
virtual int UnPack(const int EID, int IntSize, int *IntData, int DoubleSize, double *DoubleData)=0
Unpacks all data for local element EID in the specified arrays.
 
virtual int Pack(const int EID, int *IntData, double *DoubleData) const =0
Packs all data for local element EID in the specified arrays.