@Private
public TezOutputContextImpl(Configuration conf, String[] workDirs, int appAttemptNumber,
TezUmbilical tezUmbilical, String dagName,
String taskVertexName,
String destinationVertexName,
int vertexParallelism,
TezTaskAttemptID taskAttemptID, int outputIndex,
@Nullable UserPayload userPayload, LogicalIOProcessorRuntimeTask runtimeTask,
Map<String, ByteBuffer> serviceConsumerMetadata,
Map<String, String> auxServiceEnv, MemoryDistributor memDist,
OutputDescriptor outputDescriptor, ObjectRegistry objectRegistry,
ExecutionContext executionContext, long memAvailable, TezExecutors sharedExecutor) {
super(conf, workDirs, appAttemptNumber, dagName, taskVertexName,
vertexParallelism, taskAttemptID,
wrapCounters(runtimeTask, taskVertexName, destinationVertexName, conf),
runtimeTask, tezUmbilical, serviceConsumerMetadata,
auxServiceEnv, memDist, outputDescriptor, objectRegistry, executionContext, memAvailable,
sharedExecutor);
checkNotNull(outputIndex, "outputIndex is null");
checkNotNull(destinationVertexName, "destinationVertexName is null");
this.userPayload = userPayload;
this.outputIndex = outputIndex;
this.destinationVertexName = destinationVertexName;
this.sourceInfo = new EventMetaData(EventProducerConsumerType.OUTPUT,
taskVertexName, destinationVertexName, taskAttemptID);
runtimeTask.getTaskStatistics().addIO(destinationVertexName);
statsReporter = new OutputStatisticsReporterImpl();
}