Package org.apache.catalina.tribes

## Interface Member

- All Superinterfaces:
    `Serializable`
  All Known Implementing Classes:
    `MemberImpl`, `StaticMember`

      public interface Member
      extends Serializable

  The Member interface, defines a member in the group. Each member can carry a set of properties, defined by the actual implementation.
  A member is identified by the host/ip/uniqueId
  The host is what interface the member is listening to, to receive data
  The port is what port the member is listening to, to receive data
  The uniqueId defines the session id for the member. This is an important feature since a member that has crashed and the starts up again on the same port/host is not guaranteed to be the same member, so no state transfers will ever be confused

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static byte[]` | `SHUTDOWN_PAYLOAD` | When a member leaves the cluster, the payload of the memberDisappeared member will be the following bytes.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `byte[]` | `getCommand()` | returns the command associated with this member
    `byte[]` | `getData​(boolean getalive)` | Highly optimized version of serializing a member into a byte array Returns a cached byte[] reference, do not modify this data
    `byte[]` | `getData​(boolean getalive, boolean reset)` | Highly optimized version of serializing a member into a byte array Returns a cached byte[] reference, do not modify this data
    `int` | `getDataLength()` | Length of a message obtained by `getData(boolean)` or `getData(boolean, boolean)`.
    `byte[]` | `getDomain()` | Domain for this cluster
    `byte[]` | `getHost()` | Returns the listen host for the ChannelReceiver implementation
    `long` | `getMemberAliveTime()` | Contains information on how long this member has been online.
    `String` | `getName()` |
    `byte[]` | `getPayload()` | returns the payload associated with this member
    `int` | `getPort()` | Returns the listen port for the ChannelReceiver implementation
    `int` | `getSecurePort()` | Returns the secure listen port for the ChannelReceiver implementation.
    `int` | `getUdpPort()` | Returns the UDP port that this member is listening to for UDP messages.
    `byte[]` | `getUniqueId()` | returns a UUID unique for this member over all sessions.
    `boolean` | `isFailing()` |
    `boolean` | `isLocal()` |
    `boolean` | `isReady()` | The current state of the member
    `boolean` | `isSuspect()` | The current state of the member
    `void` | `setCommand​(byte[] command)` |
    `void` | `setLocal​(boolean local)` |
    `void` | `setMemberAliveTime​(long memberAliveTime)` |
    `void` | `setPayload​(byte[] payload)` |

- - ### Field Detail

    - #### SHUTDOWN_PAYLOAD

          static final byte[] SHUTDOWN_PAYLOAD

      When a member leaves the cluster, the payload of the memberDisappeared member will be the following bytes. This indicates a soft shutdown, and not a crash

  - ### Method Detail

    - #### getName

          String getName()

      Returns:
        the name of this node, should be unique within the group.

    - #### getHost

          byte[] getHost()

      Returns the listen host for the ChannelReceiver implementation
      Returns:
        IPv4 or IPv6 representation of the host address this member listens to incoming data
      See Also:
        `ChannelReceiver`

    - #### getPort

          int getPort()

      Returns the listen port for the ChannelReceiver implementation
      Returns:
        the listen port for this member, -1 if its not listening on an insecure port
      See Also:
        `ChannelReceiver`

    - #### getSecurePort

          int getSecurePort()

      Returns the secure listen port for the ChannelReceiver implementation. Returns -1 if its not listening to a secure port.
      Returns:
        the listen port for this member, -1 if its not listening on a secure port
      See Also:
        `ChannelReceiver`

    - #### getUdpPort

          int getUdpPort()

      Returns the UDP port that this member is listening to for UDP messages.
      Returns:
        the listen UDP port for this member, -1 if its not listening on a UDP port

    - #### getMemberAliveTime

          long getMemberAliveTime()

      Contains information on how long this member has been online. The result is the number of milli seconds this member has been broadcasting its membership to the group.
      Returns:
        nr of milliseconds since this member started.

    - #### setMemberAliveTime

          void setMemberAliveTime​(long memberAliveTime)

    - #### isReady

          boolean isReady()

      The current state of the member
      Returns:
        boolean - true if the member is functioning correctly

    - #### isSuspect

          boolean isSuspect()

      The current state of the member
      Returns:
        boolean - true if the member is suspect, but the crash has not been confirmed

    - #### isFailing

          boolean isFailing()

      Returns:
        boolean - true if the member has been confirmed to malfunction

    - #### getUniqueId

          byte[] getUniqueId()

      returns a UUID unique for this member over all sessions. If the member crashes and restarts, the uniqueId will be different.
      Returns:
        byte[]

    - #### getPayload

          byte[] getPayload()

      returns the payload associated with this member
      Returns:
        byte[]

    - #### setPayload

          void setPayload​(byte[] payload)

    - #### getCommand

          byte[] getCommand()

      returns the command associated with this member
      Returns:
        byte[]

    - #### setCommand

          void setCommand​(byte[] command)

    - #### getDomain

          byte[] getDomain()

      Domain for this cluster
      Returns:
        byte[]

    - #### getData

          byte[] getData​(boolean getalive)

      Highly optimized version of serializing a member into a byte array Returns a cached byte[] reference, do not modify this data
      Parameters:
        `getalive` - calculate memberAlive time
      Returns:
        the data as a byte array

    - #### getData

          byte[] getData​(boolean getalive,
                         boolean reset)

      Highly optimized version of serializing a member into a byte array Returns a cached byte[] reference, do not modify this data
      Parameters:
        `getalive` - calculate memberAlive time
        `reset` - reset the cached data package, and create a new one
      Returns:
        the data as a byte array

    - #### getDataLength

          int getDataLength()

      Length of a message obtained by `getData(boolean)` or `getData(boolean, boolean)`.
      Returns:
        the data length

    - #### isLocal

          boolean isLocal()

      Returns:
        boolean - true if the member is local member

    - #### setLocal

          void setLocal​(boolean local)