Пример #1
0
        /** <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);
        }
Пример #2
0
            /** <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);
 }
Пример #5
0
 /** <inheritdoc /> */
 public T Data()
 {
     return((T)_wrappedRes.Data());
 }
        /** <inheritDoc /> */
        protected override ComputeJobResultPolicy Result0(IComputeJobResult <T> res)
        {
            _res.Add(res.Data());

            return(ComputeJobResultPolicy.Wait);
        }