Interface BroadcastProviderBabelProtocol

All Superinterfaces:
BabelProtocol

public interface BroadcastProviderBabelProtocol extends BabelProtocol
Interface for protocols that implement a broadcast service.

A broadcast provider receives BroadcastRequest events from consumer protocols (via the BroadcastProviderExtension), performs the actual dissemination (e.g., gossip, flooding, tree-based multicast), and calls deliverMessage(Babel, BabelMessage, BabelNode) for each message that should be delivered to the local consumers.

To wire up a provider, register a BroadcastProviderExtensionFactory (or BroadcastProviderExtension.newFactory()) with the BabelBootstrap.

See Also:
  • Method Details

    • uponBroadcastRequest

      void uponBroadcastRequest(BabelMessage message)
      Called by the BroadcastProviderExtension when a consumer protocol requests that message be broadcast to all overlay members.
      Parameters:
      message - the message to disseminate
    • deliverMessage

      default void deliverMessage(Babel runtime, BabelMessage message, BabelNode node)
      Delivers a broadcast-received message to all local consumer protocols by dispatching a BroadcastDeliverEvent through the runtime.
      Parameters:
      runtime - the Babel runtime used to dispatch the delivery event
      message - the message to deliver locally
      node - the original sender of the broadcast