RawKeyValueIterator.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:2k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.mapred;
  19. import java.io.IOException;
  20. import org.apache.hadoop.io.DataInputBuffer;
  21. import org.apache.hadoop.util.Progress;
  22. /**
  23.  * <code>RawKeyValueIterator</code> is an iterator used to iterate over
  24.  * the raw keys and values during sort/merge of intermediate data. 
  25.  */
  26. public interface RawKeyValueIterator {
  27.   /** 
  28.    * Gets the current raw key.
  29.    * 
  30.    * @return Gets the current raw key as a DataInputBuffer
  31.    * @throws IOException
  32.    */
  33.   DataInputBuffer getKey() throws IOException;
  34.   
  35.   /** 
  36.    * Gets the current raw value.
  37.    * 
  38.    * @return Gets the current raw value as a DataInputBuffer 
  39.    * @throws IOException
  40.    */
  41.   DataInputBuffer getValue() throws IOException;
  42.   
  43.   /** 
  44.    * Sets up the current key and value (for getKey and getValue).
  45.    * 
  46.    * @return <code>true</code> if there exists a key/value, 
  47.    *         <code>false</code> otherwise. 
  48.    * @throws IOException
  49.    */
  50.   boolean next() throws IOException;
  51.   
  52.   /** 
  53.    * Closes the iterator so that the underlying streams can be closed.
  54.    * 
  55.    * @throws IOException
  56.    */
  57.   void close() throws IOException;
  58.   
  59.   /** Gets the Progress object; this has a float (0.0 - 1.0) 
  60.    * indicating the bytes processed by the iterator so far
  61.    */
  62.   Progress getProgress();
  63. }