Class MemberImpl

    • Field Detail

      • DO_DNS_LOOKUPS

        @Deprecated
        public static final boolean DO_DNS_LOOKUPS
        Deprecated.
        This will be removed without replacement in Tomact 10 onwards
        Should a call to getName or getHostName try to do a DNS lookup? default is false
      • TRIBES_MBR_BEGIN

        public static final transient byte[] TRIBES_MBR_BEGIN
      • TRIBES_MBR_END

        public static final transient byte[] TRIBES_MBR_END
      • host

        protected volatile byte[] host
        The listen host for this member
      • hostname

        protected transient volatile String hostname
      • port

        protected volatile int port
        The tcp listen port for this member
      • udpPort

        protected volatile int udpPort
        The udp listen port for this member
      • securePort

        protected volatile int securePort
        The tcp/SSL listen port for this member
      • msgCount

        protected AtomicInteger msgCount
        Counter for how many broadcast messages have been sent from this member
      • memberAliveTime

        protected volatile 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 volatile byte[] uniqueId
        Unique session Id for this member
      • payload

        protected volatile byte[] payload
        Custom payload that an app framework can broadcast Also used to transport stop command.
      • command

        protected volatile 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 volatile 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 - If there is an error converting the host name to an IP address
    • 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)
        Description copied from interface: Member
        Highly optimized version of serializing a member into a byte array Returns a cached byte[] reference, do not modify this data
        Specified by:
        getData in interface Member
        Parameters:
        getalive - calculate memberAlive time
        Returns:
        the data as a byte array
      • getData

        public byte[] getData​(boolean getalive,
                              boolean reset)
        Description copied from interface: Member
        Highly optimized version of serializing a member into a byte array Returns a cached byte[] reference, do not modify this data
        Specified by:
        getData in interface Member
        Parameters:
        getalive - calculate memberAlive time
        reset - reset the cached data package, and create a new one
        Returns:
        the data as a byte array
      • getMember

        public static Member getMember​(byte[] data,
                                       MemberImpl member)
        Deserializes a member from data sent over the wire.
        Parameters:
        data - The bytes received
        member - The member object to populate
        Returns:
        The populated member object.
      • getMember

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

        public static Member getMember​(byte[] data)
      • getMember

        public static Member 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)
        Specified by:
        setMemberAliveTime in interface Member
      • 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)
      • 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 - The object to test for equality
      • setHost

        public void setHost​(byte[] host)
      • 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)
        Specified by:
        setPayload in interface Member
      • setCommand

        public void setCommand​(byte[] command)
        Specified by:
        setCommand in interface Member
      • setDomain

        public void setDomain​(byte[] domain)
      • setSecurePort

        public void setSecurePort​(int securePort)
      • setUdpPort

        public void setUdpPort​(int port)
      • isLocal

        public boolean isLocal()
        Specified by:
        isLocal in interface Member
        Returns:
        boolean - true if the member is local member
      • setLocal

        public void setLocal​(boolean local)
        Specified by:
        setLocal in interface Member