net.i2p.router.message
Class GarlicConfig

java.lang.Object
  extended by net.i2p.router.message.GarlicConfig
Direct Known Subclasses:
PayloadGarlicConfig

 class GarlicConfig
extends Object

Define the contents of a garlic chunk that contains 1 or more sub garlics. This is the top-level config for a Garlic Message that contains cloves. For cloves themselves, see PayloadGarlicConfig. Note that this is somewhat misnamed as it contains the actual cloves, not just the config.


Constructor Summary
  GarlicConfig()
           
protected GarlicConfig(List<GarlicConfig> cloveConfigs)
           
 
Method Summary
 void addClove(GarlicConfig config)
          Add a clove to the current message - if any cloves are added, an I2NP message cannot be specified via setPayload.
 void clearCloves()
           
 Certificate getCertificate()
           
 GarlicConfig getClove(int index)
           
 int getCloveCount()
           
 DeliveryInstructions getDeliveryInstructions()
           
 long getExpiration()
           
 long getId()
           
 RouterInfo getRecipient()
           
 PublicKey getRecipientPublicKey()
           
protected  String getSubData()
           
 void setCertificate(Certificate cert)
          Certificate for the getRecipient() to pay for their processing
 void setDeliveryInstructions(DeliveryInstructions instructions)
          Specify how the I2NPMessage in the clove should be handled.
 void setExpiration(long expiration)
          Expiration of the clove, after which it should be dropped
 void setId(long id)
          Unique ID of the clove
 void setRecipient(RouterInfo info)
          Router to receive and process this clove - the router that will open the delivery instructions and decide what to do process it locally as an I2NPMessage, forward it as an I2NPMessage to a router, forward it as an I2NPMessage to a Destination, or forward it as an I2NPMessage to a tunnel.
 void setRecipientPublicKey(PublicKey recipientPublicKey)
          Public key of the router to receive and process this clove.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GarlicConfig

public GarlicConfig()

GarlicConfig

protected GarlicConfig(List<GarlicConfig> cloveConfigs)
Method Detail

setRecipient

public void setRecipient(RouterInfo info)
Router to receive and process this clove - the router that will open the delivery instructions and decide what to do process it locally as an I2NPMessage, forward it as an I2NPMessage to a router, forward it as an I2NPMessage to a Destination, or forward it as an I2NPMessage to a tunnel. Used only if recipient public key is not set.


getRecipient

public RouterInfo getRecipient()

setRecipientPublicKey

public void setRecipientPublicKey(PublicKey recipientPublicKey)
Public key of the router to receive and process this clove. This is useful for garlic routed messages encrypted to the router at the end of a tunnel, as their RouterIdentity is not known, but a PublicKey they handle is exposed via the LeaseSet


getRecipientPublicKey

public PublicKey getRecipientPublicKey()

setCertificate

public void setCertificate(Certificate cert)
Certificate for the getRecipient() to pay for their processing


getCertificate

public Certificate getCertificate()

setId

public void setId(long id)
Unique ID of the clove


getId

public long getId()

setExpiration

public void setExpiration(long expiration)
Expiration of the clove, after which it should be dropped


getExpiration

public long getExpiration()

setDeliveryInstructions

public void setDeliveryInstructions(DeliveryInstructions instructions)
Specify how the I2NPMessage in the clove should be handled.


getDeliveryInstructions

public DeliveryInstructions getDeliveryInstructions()

addClove

public void addClove(GarlicConfig config)
Add a clove to the current message - if any cloves are added, an I2NP message cannot be specified via setPayload. This means that the resulting GarlicClove represented by this GarlicConfig must be a GarlicMessage itself


getCloveCount

public int getCloveCount()

getClove

public GarlicConfig getClove(int index)

clearCloves

public void clearCloves()

getSubData

protected String getSubData()

toString

public String toString()
Overrides:
toString in class Object