Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## rice.pastry.socket
Class EpochInetSocketAddress

    java.lang.Object
      rice.pastry.socket.EpochInetSocketAddress

All Implemented Interfaces:
  java.io.Serializable

    public class EpochInetSocketAddress

extends java.lang.Object
implements java.io.Serializable

Class which represets a source route to a remote IP address.

Version:
  $Id: EpochInetSocketAddress.java 3613 2007-02-15 14:45:14Z jstewart $
Author:
  Alan Mislove
See Also:
  Serialized Form

Field Summary
`protected java.net.InetSocketAddress[]` | `address`
`protected long` | `epoch`
`static long` | `EPOCH_UNKNOWN`

Constructor Summary
`EpochInetSocketAddress(java.net.InetSocketAddress address)` Constructor - don't use this unless you know what you are doing
`EpochInetSocketAddress(java.net.InetSocketAddress[] addressList, long epoch)`
`EpochInetSocketAddress(java.net.InetSocketAddress address, long epoch)` Constructor

Method Summary
`boolean` | `addressEquals(EpochInetSocketAddress that)`
`static EpochInetSocketAddress` | `build(InputBuffer buf)` EpochInetSocketAddress: (IPV4): +-+-+-+-+-+-+-+-+ + numAddrs + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address k + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port k + ...
`boolean` | `equals(java.lang.Object o)` Checks equaltiy on source routes
`java.net.InetSocketAddress` | `getAddress(EpochInetSocketAddress local)` Method which returns the address of this address
`java.net.InetSocketAddress` | `getAddress(java.net.InetAddress[] local)` This is for hairpinning support.
`long` | `getEpoch()` Method which returns the epoch of this address
`java.net.InetSocketAddress` | `getInnermostAddress()`
`short` | `getSerializedLength()`
`int` | `hashCode()` Returns the hashCode of this source route
`void` | `serialize(OutputBuffer buf)` EpochInetSocketAddress: (IPV4): +-+-+-+-+-+-+-+-+ + numAddrs + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address k + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port k + ...
`java.lang.String` | `toString()` Internal method for computing the toString of an array of InetSocketAddresses

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

Field Detail

### EPOCH_UNKNOWN

    public static final long EPOCH_UNKNOWN

See Also:
  Constant Field Values

### address

    protected java.net.InetSocketAddress[] address

### epoch

    protected long epoch

Constructor Detail

### EpochInetSocketAddress

    public EpochInetSocketAddress(java.net.InetSocketAddress address)

  Constructor - don't use this unless you know what you are doing

  Parameters:
    `address` - The remote address

### EpochInetSocketAddress

    public EpochInetSocketAddress(java.net.InetSocketAddress address,
                                  long epoch)

  Constructor

  Parameters:
    `address` - The remote address
    `epoch` - The remote epoch

### EpochInetSocketAddress

    public EpochInetSocketAddress(java.net.InetSocketAddress[] addressList,
                                  long epoch)

Method Detail

### hashCode

    public int hashCode()

  Returns the hashCode of this source route

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

### equals

    public boolean equals(java.lang.Object o)

  Checks equaltiy on source routes

  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `o` - The source route to compare to
  Returns:
    The equality

### addressEquals

    public boolean addressEquals(EpochInetSocketAddress that)

### toString

    public java.lang.String toString()

  Internal method for computing the toString of an array of InetSocketAddresses

  Overrides:
    `toString` in class `java.lang.Object`
  Parameters:
    `path` - The path
  Returns:
    THe string

### getAddress

    public java.net.InetSocketAddress getAddress(EpochInetSocketAddress local)

  Method which returns the address of this address

  Returns:
    The address

### getAddress

    public java.net.InetSocketAddress getAddress(java.net.InetAddress[] local)

  This is for hairpinning support. The Node is advertising many different InetSocketAddresses that it could be contacted on. In a typical NAT situation this will be 2: the NAT's external address, and the Node's non-routable address on the Lan. The algorithm sees if the external address matches its own external address. If it doesn't then the node is on a different lan, use the external. If the external address matches then both nodes are on the same Lan, and it uses the internal address because the NAT may not support hairpinning.

  Parameters:
    `local` - my sorted list of InetAddress
  Returns:
    the address I should use to contact the node

### getInnermostAddress

    public java.net.InetSocketAddress getInnermostAddress()

### getEpoch

    public long getEpoch()

  Method which returns the epoch of this address

  Returns:
    The epoch

### build

    public static EpochInetSocketAddress build(InputBuffer buf)
                                        throws java.io.IOException

  EpochInetSocketAddress: (IPV4): +-+-+-+-+-+-+-+-+ + numAddrs + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address k + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port k + ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + epoch (long) + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  Parameters:
    `buf` -
  Returns:
  Throws:
    `java.io.IOException`

### serialize

    public void serialize(OutputBuffer buf)
                   throws java.io.IOException

  EpochInetSocketAddress: (IPV4): +-+-+-+-+-+-+-+-+ + numAddrs + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 0 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + internet address k + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + port k + ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + epoch (long) + + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  Parameters:
    `buf` -
  Throws:
    `java.io.IOException`

### getSerializedLength

    public short getSerializedLength()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.