/** <inheritDoc /> */ protected override ComputeJobResultPolicy Result0(IComputeJobResult <T> res) { _res = (TR)res.Data(); // No more results are expected at this point, but we prefer not to alter regular // task flow. return(ComputeJobResultPolicy.Wait); }
/** <inheritDoc /> */ public ComputeJobResultPolicy Result(IComputeJobResult <int> res, IList <IComputeJobResult <int> > rcvd) { Assert.IsTrue(rcvd != null); Assert.IsTrue(rcvd.Count == 0); _sum += res.Data(); return(ComputeJobResultPolicy.Wait); }
/** <inheritDoc /> */ public ComputeJobResultPolicy Result(IComputeJobResult <object> res, IList <IComputeJobResult <object> > rcvd) { if (res.Exception() != null) { JobErrs.Add(res.Exception()); } else { object res0 = res.Data(); bool rmt = res0 is GoodJobResult ? ((GoodJobResult)res0).Rmt : ((BadJobResult)res0).Rmt; if (rmt) { switch (Mode) { case ErrorMode.RmtResErr: throw new GoodException(ErrorMode.RmtResErr); case ErrorMode.RmtResErrNotMarshalable: throw new BadException(ErrorMode.RmtResErrNotMarshalable); } } else { switch (Mode) { case ErrorMode.LocResErr: throw new GoodException(ErrorMode.LocResErr); case ErrorMode.LocResErrNotMarshalable: throw new BadException(ErrorMode.LocResErrNotMarshalable); } } _res += 1; } return(ComputeJobResultPolicy.Wait); }
/** <inheritDoc /> */ protected override ComputeJobResultPolicy Result0(IComputeJobResult <T> res) { return(_rdc.Collect(res.Data()) ? ComputeJobResultPolicy.Wait : ComputeJobResultPolicy.Reduce); }
/** <inheritdoc /> */ public T Data() { return((T)_wrappedRes.Data()); }
/** <inheritDoc /> */ protected override ComputeJobResultPolicy Result0(IComputeJobResult <T> res) { _res.Add(res.Data()); return(ComputeJobResultPolicy.Wait); }