org.apache.catalina.tribes.membership

## Class MemberImpl

- java.lang.Object
- - org.apache.catalina.tribes.membership.MemberImpl

- All Implemented Interfaces:
    Externalizable, Serializable, Member
  Direct Known Subclasses:
    StaticMember

      public class MemberImpl
      extends Object
      implements Member, Externalizable

  A membership implementation using simple multicast. This is the representation of a multicast member. Carries the host, and port of the this or other cluster nodes.
  Author:
    Filip Hanik
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected byte[]` | `command` Command, so that the custom payload doesn't have to be used This is for internal tribes use, such as SHUTDOWN_COMMAND
    `protected byte[]` | `dataPkg` To avoid serialization over and over again, once the local dataPkg has been set, we use that to transmit data
    `static boolean` | `DO_DNS_LOOKUPS` Should a call to getName or getHostName try to do a DNS lookup?
    `protected byte[]` | `domain` Domain if we want to filter based on domain.
    `protected byte[]` | `host` The listen host for this member
    `protected String` | `hostname`
    `protected boolean` | `local` The flag indicating that this member is a local member.
    `static String` | `MEMBER_NAME` Deprecated. Unused - will be removed in Tomcat 8.0.x
    `protected long` | `memberAliveTime` The number of milliseconds since this member was created, is kept track of using the start time
    `protected int` | `msgCount` Counter for how many broadcast messages have been sent from this member
    `protected byte[]` | `payload` Custom payload that an app framework can broadcast Also used to transport stop command.
    `protected int` | `port` The tcp listen port for this member
    `protected int` | `securePort` The tcp/SSL listen port for this member
    `protected long` | `serviceStartTime` For the local member only
    `static String` | `TCP_LISTEN_HOST` Deprecated. Unused - will be removed in Tomcat 8.0.x
    `static String` | `TCP_LISTEN_PORT` Deprecated. Unused - will be removed in Tomcat 8.0.x
    `static byte[]` | `TRIBES_MBR_BEGIN`
    `static byte[]` | `TRIBES_MBR_END`
    `protected int` | `udpPort` The udp listen port for this member
    `protected byte[]` | `uniqueId` Unique session Id for this member

    - ### Fields inherited from interface org.apache.catalina.tribes.Member

      `SHUTDOWN_PAYLOAD`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MemberImpl()` Empty constructor for serialization
    `MemberImpl(String host, int port, long aliveTime)` Construct a new member object
    `MemberImpl(String host, int port, long aliveTime, byte[] payload)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `bToS(byte[] data)`
    `static String` | `bToS(byte[] data, int max)`
    `boolean` | `equals(Object o)` Returns true if the param o is a McastMember with the same name
    `byte[]` | `getCommand()` returns the command associated with this member
    `byte[]` | `getData()` Create a data package to send over the wire representing 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)`
    `int` | `getDataLength()`
    `byte[]` | `getDomain()` Domain for this cluster
    `byte[]` | `getHost()` Return the TCP listen host for this member
    `String` | `getHostname()`
    `static MemberImpl` | `getMember(byte[] data)`
    `static MemberImpl` | `getMember(byte[] data, int offset, int length)`
    `static MemberImpl` | `getMember(byte[] data, int offset, int length, MemberImpl member)`
    `static MemberImpl` | `getMember(byte[] data, MemberImpl member)` Deserializes a member from data sent over the wire
    `long` | `getMemberAliveTime()` Contains information on how long this member has been online.
    `int` | `getMsgCount()`
    `String` | `getName()` Return the name of this object
    `byte[]` | `getPayload()` returns the payload associated with this member
    `int` | `getPort()` Return the listen port of this member
    `int` | `getSecurePort()` Returns the secure listen port for the ChannelReceiver implementation.
    `long` | `getServiceStartTime()`
    `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.
    `int` | `hashCode()`
    `protected void` | `inc()` Increment the message count.
    `boolean` | `isFailing()`
    `boolean` | `isLocal()`
    `boolean` | `isReady()` The current state of the member
    `boolean` | `isSuspect()` The current state of the member
    `void` | `readExternal(ObjectInput in)`
    `void` | `setCommand(byte[] command)`
    `void` | `setDomain(byte[] domain)`
    `void` | `setHost(byte[] host)`
    `void` | `setHostname(String host)`
    `void` | `setLocal(boolean local)`
    `void` | `setMemberAliveTime(long time)`
    `void` | `setMsgCount(int msgCount)`
    `void` | `setPayload(byte[] payload)`
    `void` | `setPort(int port)`
    `void` | `setSecurePort(int securePort)`
    `void` | `setServiceStartTime(long serviceStartTime)`
    `void` | `setUdpPort(int port)`
    `void` | `setUniqueId(byte[] uniqueId)`
    `String` | `toString()` String representation of this object
    `void` | `writeExternal(ObjectOutput out)`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DO_DNS_LOOKUPS

          public static final boolean DO_DNS_LOOKUPS

      Should a call to getName or getHostName try to do a DNS lookup? default is false

    - #### TCP_LISTEN_PORT

          @Deprecated
          public static final transient String TCP_LISTEN_PORT

      Deprecated. Unused - will be removed in Tomcat 8.0.x
      See Also:
        Constant Field Values

    - #### TCP_LISTEN_HOST

          @Deprecated
          public static final transient String TCP_LISTEN_HOST

      Deprecated. Unused - will be removed in Tomcat 8.0.x
      See Also:
        Constant Field Values

    - #### MEMBER_NAME

          @Deprecated
          public static final transient String MEMBER_NAME

      Deprecated. Unused - will be removed in Tomcat 8.0.x
      See Also:
        Constant Field Values

    - #### TRIBES_MBR_BEGIN

          public static final transient byte[] TRIBES_MBR_BEGIN

    - #### TRIBES_MBR_END

          public static final transient byte[] TRIBES_MBR_END

    - #### host

          protected byte[] host

      The listen host for this member

    - #### hostname

          protected transient String hostname

    - #### port

          protected int port

      The tcp listen port for this member

    - #### udpPort

          protected int udpPort

      The udp listen port for this member

    - #### securePort

          protected int securePort

      The tcp/SSL listen port for this member

    - #### msgCount

          protected int msgCount

      Counter for how many broadcast messages have been sent from this member

    - #### memberAliveTime

          protected long memberAliveTime

      The number of milliseconds since this member was created, is kept track of using the start time

    - #### serviceStartTime

          protected transient long serviceStartTime

      For the local member only

    - #### dataPkg

          protected transient byte[] dataPkg

      To avoid serialization over and over again, once the local dataPkg has been set, we use that to transmit data

    - #### uniqueId

          protected byte[] uniqueId

      Unique session Id for this member

    - #### payload

          protected byte[] payload

      Custom payload that an app framework can broadcast Also used to transport stop command.

    - #### command

          protected byte[] command

      Command, so that the custom payload doesn't have to be used This is for internal tribes use, such as SHUTDOWN_COMMAND

    - #### domain

          protected byte[] domain

      Domain if we want to filter based on domain.

    - #### local

          protected volatile boolean local

      The flag indicating that this member is a local member.

  - ### Constructor Detail

    - #### MemberImpl

          public MemberImpl()

      Empty constructor for serialization

    - #### MemberImpl

          public MemberImpl(String host,
                    int port,
                    long aliveTime)
                     throws IOException

      Construct a new member object
      Parameters:
        `host` - - the tcp listen host
        `port` - - the tcp listen port
        `aliveTime` - - the number of milliseconds since this member was created
      Throws:
        `IOException`

    - #### MemberImpl

          public MemberImpl(String host,
                    int port,
                    long aliveTime,
                    byte[] payload)
                     throws IOException

      Throws:
        `IOException`

  - ### Method Detail

    - #### isReady

          public boolean isReady()

      Description copied from interface: `Member`
      The current state of the member
      Specified by:
        `isReady` in interface `Member`
      Returns:
        boolean - true if the member is functioning correctly

    - #### isSuspect

          public boolean isSuspect()

      Description copied from interface: `Member`
      The current state of the member
      Specified by:
        `isSuspect` in interface `Member`
      Returns:
        boolean - true if the member is suspect, but the crash has not been confirmed

    - #### isFailing

          public boolean isFailing()

      Specified by:
        `isFailing` in interface `Member`
      Returns:
        boolean - true if the member has been confirmed to malfunction

    - #### inc

          protected void inc()

      Increment the message count.

    - #### getData

          public byte[] getData()

      Create a data package to send over the wire representing this member. This is faster than serialization.
      Returns:
        - the bytes for this member deserialized

    - #### getData

          public 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` - boolean
      Returns:
        byte[]

    - #### getDataLength

          public int getDataLength()

    - #### getData

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

      Parameters:
        `getalive` - boolean - calculate memberAlive time
        `reset` - boolean - reset the cached data package, and create a new one
      Returns:
        byte[]

    - #### getMember

          public static MemberImpl getMember(byte[] data,
                             MemberImpl member)

      Deserializes a member from data sent over the wire
      Parameters:
        `data` - - the bytes received
      Returns:
        a member object.

    - #### getMember

          public static MemberImpl getMember(byte[] data,
                             int offset,
                             int length,
                             MemberImpl member)

    - #### getMember

          public static MemberImpl getMember(byte[] data)

    - #### getMember

          public static MemberImpl getMember(byte[] data,
                             int offset,
                             int length)

    - #### getName

          public String getName()

      Return the name of this object
      Specified by:
        `getName` in interface `Member`
      Returns:
        a unique name to the cluster

    - #### getPort

          public int getPort()

      Return the listen port of this member
      Specified by:
        `getPort` in interface `Member`
      Returns:
        - tcp listen port
      See Also:
        `ChannelReceiver`

    - #### getHost

          public byte[] getHost()

      Return the TCP listen host for this member
      Specified by:
        `getHost` in interface `Member`
      Returns:
        IP address or host name
      See Also:
        `ChannelReceiver`

    - #### getHostname

          public String getHostname()

    - #### getMsgCount

          public int getMsgCount()

    - #### getMemberAliveTime

          public 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 cluster.
      Specified by:
        `getMemberAliveTime` in interface `Member`
      Returns:
        nr of milliseconds since this member started.

    - #### getServiceStartTime

          public long getServiceStartTime()

    - #### getUniqueId

          public byte[] getUniqueId()

      Description copied from interface: `Member`
      returns a UUID unique for this member over all sessions. If the member crashes and restarts, the uniqueId will be different.
      Specified by:
        `getUniqueId` in interface `Member`
      Returns:
        byte[]

    - #### getPayload

          public byte[] getPayload()

      Description copied from interface: `Member`
      returns the payload associated with this member
      Specified by:
        `getPayload` in interface `Member`
      Returns:
        byte[]

    - #### getCommand

          public byte[] getCommand()

      Description copied from interface: `Member`
      returns the command associated with this member
      Specified by:
        `getCommand` in interface `Member`
      Returns:
        byte[]

    - #### getDomain

          public byte[] getDomain()

      Description copied from interface: `Member`
      Domain for this cluster
      Specified by:
        `getDomain` in interface `Member`
      Returns:
        byte[]

    - #### getSecurePort

          public int getSecurePort()

      Description copied from interface: `Member`
      Returns the secure listen port for the ChannelReceiver implementation. Returns -1 if its not listening to a secure port.
      Specified by:
        `getSecurePort` in interface `Member`
      Returns:
        the listen port for this member, -1 if its not listening on a secure port
      See Also:
        `ChannelReceiver`

    - #### getUdpPort

          public int getUdpPort()

      Description copied from interface: `Member`
      Returns the UDP port that this member is listening to for UDP messages.
      Specified by:
        `getUdpPort` in interface `Member`
      Returns:
        the listen UDP port for this member, -1 if its not listening on a UDP port

    - #### setMemberAliveTime

          public void setMemberAliveTime(long time)

    - #### toString

          public String toString()

      String representation of this object
      Overrides:
        `toString` in class `Object`

    - #### bToS

          public static String bToS(byte[] data)

    - #### bToS

          public static String bToS(byte[] data,
                    int max)

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`
      Returns:
        The hash code
      See Also:
        `Object.hashCode()`

    - #### equals

          public boolean equals(Object o)

      Returns true if the param o is a McastMember with the same name
      Overrides:
        `equals` in class `Object`
      Parameters:
        `o` -

    - #### setHost

          public void setHost(byte[] host)

    - #### setHostname

          public void setHostname(String host)
                           throws IOException

      Throws:
        `IOException`

    - #### setMsgCount

          public void setMsgCount(int msgCount)

    - #### setPort

          public void setPort(int port)

    - #### setServiceStartTime

          public void setServiceStartTime(long serviceStartTime)

    - #### setUniqueId

          public void setUniqueId(byte[] uniqueId)

    - #### setPayload

          public void setPayload(byte[] payload)

    - #### setCommand

          public void setCommand(byte[] command)

    - #### setDomain

          public void setDomain(byte[] domain)

    - #### setSecurePort

          public void setSecurePort(int securePort)

    - #### setUdpPort

          public void setUdpPort(int port)

    - #### isLocal

          public boolean isLocal()

    - #### setLocal

          public void setLocal(boolean local)

    - #### readExternal

          public void readExternal(ObjectInput in)
                            throws IOException,
                                   ClassNotFoundException

      Specified by:
        `readExternal` in interface `Externalizable`
      Throws:
        `IOException`
        `ClassNotFoundException`

    - #### writeExternal

          public void writeExternal(ObjectOutput out)
                             throws IOException

      Specified by:
        `writeExternal` in interface `Externalizable`
      Throws:
        `IOException`

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.