code: @PublicEvolving
  	public <R> SingleOutputStreamOperator<R> process(ProcessAllWindowFunction<T, R, W> function) {
  		String callLocation = Utils.getCallLocationName();
  		function = input.getExecutionEnvironment().clean(function);
  		TypeInformation<R> resultType = getProcessAllWindowFunctionReturnType(function, getInputType());
  		return apply(new InternalIterableProcessAllWindowFunction<>(function), resultType, callLocation);
  	}
docs: Applies the given window function to each window. The window function is called for each
  evaluation of the window. The output of the window function is
  interpreted as a regular non-windowed stream.
  
  <p>Note that this function requires that all data in the windows is buffered until the window
  is evaluated, as the function provides no means of incremental aggregation.
  
  @param function The process window function.
  @return The data stream that is the result of applying the window function to the window.