Interface BroadcastEndpoint

  • All Known Implementing Classes:
    JGroupsBroadcastEndpoint, JGroupsChannelBroadcastEndpoint, JGroupsFileBroadcastEndpoint

    public interface BroadcastEndpoint
    BroadcastEndpint is used in BroadcastGroups and DiscoveryGroups for topology updates.

    A BroadcastEndpoint can perform one of the two following tasks:

    • when being used in BroadcastGroups, it broadcasts connector informations
    • when being used in DiscoveryGroups, it receives broadcasts

    The two tasks are mutual exclusive, meaning a BroadcastEndpoint can either be a broadcaster or a receiver, but not both.

    It is an abstraction of various concrete broadcasting mechanisms. Different implementations of this interface may use different broadcasting techniques like UDP multicasting or JGroups channels.

    See Also:
    JGroupsBroadcastEndpoint
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void broadcast​(byte[] data)
      Broadcasting data to the cluster.
      void close​(boolean isBroadcast)
      Close the endpoint.
      void openBroadcaster()
      This method initializes a BroadcastEndpint as a broadcaster.
      void openClient()
      This method initializes a BroadcastEndpoint as a receiving end for broadcasts.
      byte[] receiveBroadcast()
      Receives the broadcast data.
      byte[] receiveBroadcast​(long time, TimeUnit unit)
      Receives the broadcast data with a timeout.
    • Method Detail

      • openClient

        void openClient()
                 throws Exception
        This method initializes a BroadcastEndpoint as a receiving end for broadcasts. After that data can be received using one of its receiveBroadcast() methods.
        Throws:
        Exception
      • openBroadcaster

        void openBroadcaster()
                      throws Exception
        This method initializes a BroadcastEndpint as a broadcaster. After that data can be sent via its broadcast() method.
        Throws:
        Exception
      • close

        void close​(boolean isBroadcast)
            throws Exception
        Close the endpoint. Any related resources should be cleaned up in this method.
        Parameters:
        isBroadcast - : indicates whether this endpoint serves as a broadcast or not.
        Throws:
        Exception
      • broadcast

        void broadcast​(byte[] data)
                throws Exception
        Broadcasting data to the cluster.
        Parameters:
        data - : a byte array containing the data.
        Throws:
        Exception
      • receiveBroadcast

        byte[] receiveBroadcast()
                         throws Exception
        Receives the broadcast data. It blocks until data is available.
        Returns:
        the received data as byte array.
        Throws:
        Exception
      • receiveBroadcast

        byte[] receiveBroadcast​(long time,
                                TimeUnit unit)
                         throws Exception
        Receives the broadcast data with a timeout. It blocks until either the data is available or the timeout is reached, whichever comes first.
        Parameters:
        time - : how long the method should wait for the data to arrive.
        unit - : unit of the time.
        Returns:
        a byte array if data is arrived within the timeout, or null if no data is available after the timeout.
        Throws:
        Exception