public virtual object GetDatum()
 {
     if (datum == null)
     {
         datum               = new MapAttemptFinished();
         datum.taskid        = new Utf8(attemptId.GetTaskID().ToString());
         datum.attemptId     = new Utf8(attemptId.ToString());
         datum.taskType      = new Utf8(taskType.ToString());
         datum.taskStatus    = new Utf8(taskStatus);
         datum.mapFinishTime = mapFinishTime;
         datum.finishTime    = finishTime;
         datum.hostname      = new Utf8(hostname);
         datum.port          = port;
         if (rackName != null)
         {
             datum.rackname = new Utf8(rackName);
         }
         datum.state       = new Utf8(state);
         datum.counters    = EventWriter.ToAvro(counters);
         datum.clockSplits = AvroArrayUtils.ToAvro(ProgressSplitsBlock.ArrayGetWallclockTime
                                                       (allSplits));
         datum.cpuUsages = AvroArrayUtils.ToAvro(ProgressSplitsBlock.ArrayGetCPUTime(allSplits
                                                                                     ));
         datum.vMemKbytes = AvroArrayUtils.ToAvro(ProgressSplitsBlock.ArrayGetVMemKbytes(allSplits
                                                                                         ));
         datum.physMemKbytes = AvroArrayUtils.ToAvro(ProgressSplitsBlock.ArrayGetPhysMemKbytes
                                                         (allSplits));
     }
     return(datum);
 }
 public virtual void SetDatum(object oDatum)
 {
     this.datum         = (MapAttemptFinished)oDatum;
     this.attemptId     = TaskAttemptID.ForName(datum.attemptId.ToString());
     this.taskType      = TaskType.ValueOf(datum.taskType.ToString());
     this.taskStatus    = datum.taskStatus.ToString();
     this.mapFinishTime = datum.mapFinishTime;
     this.finishTime    = datum.finishTime;
     this.hostname      = datum.hostname.ToString();
     this.rackName      = datum.rackname.ToString();
     this.port          = datum.port;
     this.state         = datum.state.ToString();
     this.counters      = EventReader.FromAvro(datum.counters);
     this.clockSplits   = AvroArrayUtils.FromAvro(datum.clockSplits);
     this.cpuUsages     = AvroArrayUtils.FromAvro(datum.cpuUsages);
     this.vMemKbytes    = AvroArrayUtils.FromAvro(datum.vMemKbytes);
     this.physMemKbytes = AvroArrayUtils.FromAvro(datum.physMemKbytes);
 }