예제 #1
0
 /** Convert writables to a byte array */
 public static byte[] toByteArray(Writable... writables) {
   final DataOutputBuffer out = new DataOutputBuffer();
   try {
     for (Writable w : writables) {
       w.write(out);
     }
     out.close();
   } catch (IOException e) {
     throw new RuntimeException("Fail to convert writables to a byte array", e);
   }
   return out.getData();
 }
예제 #2
0
  /** Utility method for testing writables. */
  public static Writable testWritable(Writable before, Configuration conf) throws Exception {
    DataOutputBuffer dob = new DataOutputBuffer();
    before.write(dob);

    DataInputBuffer dib = new DataInputBuffer();
    dib.reset(dob.getData(), dob.getLength());

    Writable after = (Writable) ReflectionUtils.newInstance(before.getClass(), conf);
    after.readFields(dib);

    assertEquals(before, after);
    return after;
  }
예제 #3
0
  /** Used by child copy constructors. */
  protected synchronized void copy(Writable other) {
    if (other != null) {
      try {
        DataOutputBuffer out = new DataOutputBuffer();
        other.write(out);
        DataInputBuffer in = new DataInputBuffer();
        in.reset(out.getData(), out.getLength());
        readFields(in);

      } catch (IOException e) {
        throw new IllegalArgumentException("map cannot be copied: " + e.getMessage());
      }

    } else {
      throw new IllegalArgumentException("source map cannot be null");
    }
  }
예제 #4
0
 /** Move the data from the output buffer to the input buffer. */
 void moveData() {
   inBuffer.reset(outBuffer.getData(), outBuffer.getLength());
 }