Package protocols.broadcast.flood
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 thebabel-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
ChannelAvailableNotificationviaregisterSharedChannel, 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
FieldsFields inherited from class pt.unl.fct.di.novasys.babel.core.GenericProtocol
babel, babelSecurity -
Constructor Summary
ConstructorsConstructorDescriptionFloodBroadcast(Properties props, pt.unl.fct.di.novasys.network.data.Host myself) -
Method Summary
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
-
Field Details
-
PROTOCOL_ID
public static final short PROTOCOL_ID- See Also:
-
PROTOCOL_NAME
- See Also:
-
-
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
- Specified by:
initin classpt.unl.fct.di.novasys.babel.core.GenericProtocol
-