## net.i2p.data
Interface DataStructure

All Known Subinterfaces:
  I2CPMessage, I2NPMessage

All Known Implementing Classes:
  DataStructureImpl, I2CPMessageImpl, I2NPMessageImpl

public interface DataStructure

Defines the class as a standard object with particular bit representation, exposing methods to read and write that representation.

Author:
  jrandom

Method Summary
`Hash` `calculateHash()` Calculate the SHA256 value of this object (useful for a few scenarios)
`void` `fromBase64(java.lang.String data)` Load the structure from the base 64 encoded data provided
`void` `fromByteArray(byte[] data)`
`void` `readBytes(java.io.InputStream in)` Load up the current object with data from the given stream.
`java.lang.String` `toBase64()` render the structure into modified base 64 notation
`byte[]` `toByteArray()`
`void` `writeBytes(java.io.OutputStream out)` Write out the data structure to the stream, using the format defined in the I2P data structure specification.

Method Detail

### readBytes

    public void readBytes(java.io.InputStream in)
                   throws DataFormatException,
                          java.io.IOException

  Load up the current object with data from the given stream. Data loaded this way must match the I2P data structure specification.

  Parameters:
    `in` - stream to read from
  Throws:
    `DataFormatException` - if the data is improperly formatted
    `java.io.IOException` - if there was a problem reading the stream

### writeBytes

    public void writeBytes(java.io.OutputStream out)
                    throws DataFormatException,
                           java.io.IOException

  Write out the data structure to the stream, using the format defined in the I2P data structure specification.

  Parameters:
    `out` - stream to write to
  Throws:
    `DataFormatException` - if the data was incomplete or not yet ready to be written
    `java.io.IOException` - if there was a problem writing to the stream

### toBase64

    public java.lang.String toBase64()

  render the structure into modified base 64 notation

  Returns:
    null on error

### fromBase64

    public void fromBase64(java.lang.String data)
                    throws DataFormatException

  Load the structure from the base 64 encoded data provided

  Throws:
    `DataFormatException`

### toByteArray

    public byte[] toByteArray()

### fromByteArray

    public void fromByteArray(byte[] data)
                       throws DataFormatException

  Throws:
    `DataFormatException`

### calculateHash

    public Hash calculateHash()

  Calculate the SHA256 value of this object (useful for a few scenarios)

  Returns:
    SHA256 hash, or null if there were problems (data format or io errors)