public class KeyValueCodec extends Object implements Codec
Encodes by casting Cell to KeyValue and writing out the backing array with a length prefix. This is how KVs were serialized in Puts, Deletes and Results pre-0.96. Its what would happen if you called the Writable#write KeyValue implementation. This encoder will fail if the passed Cell is not an old-school pre-0.96 KeyValue. Does not copy bytes writing. It just writes them direct to the passed stream.
If you wrote two KeyValues to this encoder, it would look like this in the stream:
length-of-KeyValue1 // A java int with the length of KeyValue1 backing array KeyValue1 backing array filled with a KeyValue serialized in its particular format length-of-KeyValue2 KeyValue2 backing array
Modifier and Type | Class and Description |
---|---|
static class |
KeyValueCodec.KeyValueDecoder |
static class |
KeyValueCodec.KeyValueEncoder |
Constructor and Description |
---|
KeyValueCodec() |
Modifier and Type | Method and Description |
---|---|
Decoder |
getDecoder(InputStream is)
Implementation depends on
InputStream.available() |
Encoder |
getEncoder(OutputStream os)
Must be passed a
DataOutputStream so KeyValues can be serialized using the usual
Writable mechanisms |
public Decoder getDecoder(InputStream is)
InputStream.available()
Must be passed a DataInputStream
so KeyValues can be derserialized with the usual
Writable mechanisms
getDecoder
in interface Codec
public Encoder getEncoder(OutputStream os)
DataOutputStream
so KeyValues can be serialized using the usual
Writable mechanismsgetEncoder
in interface Codec
Copyright © 2014 The Apache Software Foundation. All Rights Reserved.