Class FloodBroadcast

java.lang.Object
pt.unl.fct.di.novasys.babel.core.GenericProtocol
protocols.broadcast.flood.FloodBroadcast

public class FloodBroadcast extends pt.unl.fct.di.novasys.babel.core.GenericProtocol
Flood broadcast — the simplest reliable dissemination: when you receive a message for the first time, deliver it locally and forward it to every neighbour except the one you got it from. Duplicates are dropped by remembering message ids. Given a connected membership, every node receives every message.

Shared abstractions

Its public surface is the babel-protocols-common dissemination API, not bespoke types: the application asks it to send via a BroadcastRequest and receives deliveries via a BroadcastDelivery notification — the same contract the real ParadigmShift gossip protocols use. Only its on-the-wire BroadcastMessage is protocol-specific.

How it cooperates with the other protocols

  • It owns no channel of its own. It attaches to the membership's channel on the membership's ChannelAvailableNotification via registerSharedChannel, reusing those connections.
  • Its forwarding targets are exactly the membership's neighbours, kept in sync via the common NeighborUp / NeighborDown.
  • Nested Class Summary

    Nested classes/interfaces inherited from class pt.unl.fct.di.novasys.babel.core.GenericProtocol

    pt.unl.fct.di.novasys.babel.core.GenericProtocol.ProtocolMetricsBabelMetrics
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final short
     
    static final String
     

    Fields inherited from class pt.unl.fct.di.novasys.babel.core.GenericProtocol

    babel, babelSecurity
  • Constructor Summary

    Constructors
    Constructor
    Description
    FloodBroadcast(Properties props, pt.unl.fct.di.novasys.network.data.Host myself)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     

    Methods inherited from class pt.unl.fct.di.novasys.babel.core.GenericProtocol

    addSecret, addSecret, addSecret, addSecret, cancelTimer, closeConnection, closeConnection, closeConnection, closeConnection, closeConnection, closeConnection, createChannel, createSecureChannel, createSecureChannel, createSecureChannel, createSecureChannelWithAliases, createSecureChannelWithAliases, createSecureChannelWithIdentities, createSecureChannelWithIdentities, createSecureChannelWithProtoIdentities, enableGenericMetrics, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateSecret, generateSecret, generateSecret, generateSecret, generateSecretFromPassword, generateSecretFromPassword, generateSecretFromPassword, generateSecretFromPassword, getChannelOrThrow, getDefaultChannel, getDefaultProtoIdentity, getDefaultProtoIdentityCrypt, getDefaultProtoSecret, getMillisSinceBabelStart, getOrGenerateDefaultProtoIdentity, getProtoId, getProtoName, hasProtocolThreadStarted, openConnection, openConnection, openConnection, openConnection, registerChannelEventHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageSerializer, registerMetric, registerReplyHandler, registerRequestHandler, registerSharedChannel, registerTimerHandler, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendReply, sendRequest, setDefaultChannel, setDefaultProtoIdentity, setDefaultProtoIdentity, setDefaultProtoSecret, setupPeriodicTimer, setupTimer, startEventThread, subscribeNotification, triggerNotification, unsubscribeNotification

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • FloodBroadcast

      public FloodBroadcast(Properties props, pt.unl.fct.di.novasys.network.data.Host myself) throws pt.unl.fct.di.novasys.babel.exceptions.HandlerRegistrationException
      Throws:
      pt.unl.fct.di.novasys.babel.exceptions.HandlerRegistrationException
  • Method Details

    • init

      public void init(Properties props)
      Specified by:
      init in class pt.unl.fct.di.novasys.babel.core.GenericProtocol