/// <exception cref="System.IO.IOException"/> /// <exception cref="System.Exception"/> internal MapRunner(MultithreadedMapper <K1, V1, K2, V2> _enclosing, Mapper.Context context) { this._enclosing = _enclosing; reader = new MultithreadedMapper.SubMapRecordReader(this); this.mapper = ReflectionUtils.NewInstance(this._enclosing.mapClass, context.GetConfiguration ()); MapContext <K1, V1, K2, V2> mapContext = new MapContextImpl <K1, V1, K2, V2>(this._enclosing .outer.GetConfiguration(), this._enclosing.outer.GetTaskAttemptID(), this.reader , new MultithreadedMapper.SubMapRecordWriter(this), context.GetOutputCommitter() , new MultithreadedMapper.SubMapStatusReporter(this), this._enclosing.outer.GetInputSplit ()); this.subcontext = new WrappedMapper <K1, V1, K2, V2>().GetMapContext(mapContext); this.reader.Initialize(context.GetInputSplit(), context); }