## net.i2p.data
Class RouterAddress

    java.lang.Object
      net.i2p.data.DataStructureImpl
          net.i2p.data.RouterAddress

All Implemented Interfaces:
  DataStructure

    public class RouterAddress

extends DataStructureImpl

Defines a method of communicating with a router

Author:
  jrandom

Constructor Summary
`RouterAddress()`

Method Summary
`boolean` `equals(Object object)`
`int` `getCost()` Retrieve the weighted cost of this address, relative to other methods of contacting this router.
`Date` `getExpiration()` Deprecated. unused for now
`Properties` `getOptions()` Retrieve the transport specific options necessary for communication
`String` `getTransportStyle()` Retrieve the type of transport that must be used to communicate on this address.
`int` `hashCode()` Just use style and hashCode for speed (expiration is always null).
`void` `readBytes(InputStream in)` Load up the current object with data from the given stream.
`void` `setCost(int cost)` Configure the weighted cost of using the address.
`void` `setExpiration(Date expiration)` Configure the expiration date of the address (null for no expiration) Unused for now, always null
`void` `setOptions(Properties options)` Specify the transport specific options necessary for communication
`void` `setTransportStyle(String transportStyle)` Configure the type of transport that must be used to communicate on this address
`String` `toString()` This is used on peers.jsp so sort options so it looks better.
`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, toByteArray`

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

Constructor Detail

### RouterAddress

    public RouterAddress()

Method Detail

### getCost

    public int getCost()

  Retrieve the weighted cost of this address, relative to other methods of contacting this router. The value 0 means free and 255 means really expensive. No value above 255 is allowed. Unused before 0.7.12

### setCost

    public void setCost(int cost)

  Configure the weighted cost of using the address. No value above 255 is allowed. NTCP is set to 10 and SSU to 5 by default, unused before 0.7.12

### getExpiration

    public Date getExpiration()

  Deprecated. unused for now

  Retrieve the date after which the address should not be used. If this is null, then the address never expires.

### setExpiration

    public void setExpiration(Date expiration)

  Configure the expiration date of the address (null for no expiration) Unused for now, always null

### getTransportStyle

    public String getTransportStyle()

  Retrieve the type of transport that must be used to communicate on this address.

### setTransportStyle

    public void setTransportStyle(String transportStyle)

  Configure the type of transport that must be used to communicate on this address

### getOptions

    public Properties getOptions()

  Retrieve the transport specific options necessary for communication

### setOptions

    public void setOptions(Properties options)

  Specify the transport specific options necessary for communication

### 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

### 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

### equals

    public boolean equals(Object object)

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Just use style and hashCode for speed (expiration is always null). If we add multiple addresses of the same style, this may need to be changed.

  Overrides:
    `hashCode` in class `Object`

### toString

    public String toString()

  This is used on peers.jsp so sort options so it looks better. We don't just use OrderedProperties for _options because DataHelper.writeProperties() sorts also.

  Overrides:
    `toString` in class `Object`