## net.i2p.data.i2np
Class GarlicClove

    java.lang.Object
      net.i2p.data.DataStructureImpl
          net.i2p.data.i2np.GarlicClove

All Implemented Interfaces:
  DataStructure

    public class GarlicClove

extends DataStructureImpl

Contains one deliverable message encrypted to a router along with instructions and a certificate 'paying for' the delivery.

Author:
  jrandom

Constructor Summary
`GarlicClove(RouterContext context)`

Method Summary
`boolean` `equals(java.lang.Object obj)`
`int` `estimateSize()`
`Certificate` `getCertificate()`
`long` `getCloveId()`
`I2NPMessage` `getData()`
`java.util.Date` `getExpiration()`
`DeliveryInstructions` `getInstructions()`
`int` `hashCode()`
`int` `readBytes(byte[] source, int offset)`
`void` `readBytes(java.io.InputStream in)` Load up the current object with data from the given stream.
`void` `setCertificate(Certificate cert)`
`void` `setCloveId(long id)`
`void` `setData(I2NPMessage msg)`
`void` `setExpiration(java.util.Date exp)`
`void` `setInstructions(DeliveryInstructions instr)`
`byte[]` `toByteArray()`
`java.lang.String` `toString()`
`void` `writeBytes(java.io.OutputStream out)` Write out the data structure to the stream, using the format defined in the I2P data structure specification.

Methods inherited from class net.i2p.data.DataStructureImpl
`calculateHash, fromBase64, fromByteArray, read, toBase64`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### GarlicClove

    public GarlicClove(RouterContext context)

Method Detail

### getInstructions

    public DeliveryInstructions getInstructions()

### setInstructions

    public void setInstructions(DeliveryInstructions instr)

### getData

    public I2NPMessage getData()

### setData

    public void setData(I2NPMessage msg)

### getCloveId

    public long getCloveId()

### setCloveId

    public void setCloveId(long id)

### getExpiration

    public java.util.Date getExpiration()

### setExpiration

    public void setExpiration(java.util.Date exp)

### getCertificate

    public Certificate getCertificate()

### setCertificate

    public void setCertificate(Certificate cert)

### readBytes

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

  Description copied from interface: `DataStructure`
  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

### readBytes

    public int readBytes(byte[] source,
                         int offset)
                  throws DataFormatException

  Throws:
    `DataFormatException`

### writeBytes

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

  Description copied from interface: `DataStructure`
  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

### toByteArray

    public byte[] toByteArray()

  Specified by:
    `toByteArray` in interface `DataStructure`
  Overrides:
    `toByteArray` in class `DataStructureImpl`

### estimateSize

    public int estimateSize()

### equals

    public boolean equals(java.lang.Object obj)

  Overrides:
    `equals` in class `java.lang.Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`