public void ReadAtts(int index, CommunicationBuffer buf) {
   switch (index) {
     case 0:
       SetContourNLevels(buf.ReadInt());
       break;
     case 1:
       SetContourValue(buf.ReadDoubleVector());
       break;
     case 2:
       SetContourPercent(buf.ReadDoubleVector());
       break;
     case 3:
       SetContourMethod(buf.ReadInt());
       break;
     case 4:
       SetMinFlag(buf.ReadBool());
       break;
     case 5:
       SetMaxFlag(buf.ReadBool());
       break;
     case 6:
       SetMin(buf.ReadDouble());
       break;
     case 7:
       SetMax(buf.ReadDouble());
       break;
     case 8:
       SetScaling(buf.ReadInt());
       break;
     case 9:
       SetVariable(buf.ReadString());
       break;
   }
 }
 public void ReadAtts(int index, CommunicationBuffer buf) {
   switch (index) {
     case 0:
       SetName(buf.ReadString());
       break;
     case 1:
       SetVarnames(buf.ReadStringVector());
       break;
     case 2:
       SetBinType(buf.ReadByteVector());
       break;
     case 3:
       SetBinBoundaries(buf.ReadDoubleVector());
       break;
     case 4:
       SetReductionOperator(buf.ReadInt());
       break;
     case 5:
       SetVarForReductionOperator(buf.ReadString());
       break;
     case 6:
       SetUndefinedValue(buf.ReadDouble());
       break;
     case 7:
       SetBinningScheme(buf.ReadInt());
       break;
     case 8:
       SetNumBins(buf.ReadIntVector());
       break;
     case 9:
       SetOverTime(buf.ReadBool());
       break;
     case 10:
       SetTimeStart(buf.ReadInt());
       break;
     case 11:
       SetTimeEnd(buf.ReadInt());
       break;
     case 12:
       SetTimeStride(buf.ReadInt());
       break;
     case 13:
       SetOutOfBoundsBehavior(buf.ReadInt());
       break;
   }
 }