Several methods in the current XDR class have ambiguous semantics. For example, Size() returns the actual size of internal byte array. The actual size of current buffer, is also affected by read requests, which pull data out of the buffer.
These ambiguous semantics makes removing redundant copies on the NFS paths difficult.
This JIRA proposes to decompose the responsibilities of XDR into two separate class: XDRReader and XDRWriter. The overall designs should closely follow Java's *Reader / *Writer classes.