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

Constructors
Constructor and Description
`GarlicClove(RouterContext context)`

### Method Summary

Methods
`boolean` `equals(Object obj)`
`int` `estimateSize()`
`Certificate` `getCertificate()`
`long` `getCloveId()`
`I2NPMessage` `getData()`
`Date` `getExpiration()`
`DeliveryInstructions` `getInstructions()`
`int` `hashCode()`
`int` `readBytes(byte[] source, int offset)`
`void` `readBytes(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(Date exp)`
`void` `setInstructions(DeliveryInstructions instr)`
`byte[]` `toByteArray()`
`String` `toString()`
`void` `writeBytes(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 Date getExpiration()

#### setExpiration

    public void setExpiration(Date exp)

#### getCertificate

    public Certificate getCertificate()

#### setCertificate

    public void setCertificate(Certificate cert)

#### readBytes

    public void readBytes(InputStream in)
                   throws DataFormatException,
                          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
  `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(OutputStream out)
                    throws DataFormatException,
                           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
  `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(Object obj)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`