A class implementing
|EAbstractMultiKeyFeed.MultiFeedFactory<M extends EAbstractMultiKeyFeed,C extends EMessage,F extends EFeed>||
This interface is used by
|EAbstractMultiKeyFeed.SubordinateFeedFactory<R extends EObject,F extends EFeed>||
This interface is used by
This interface solves the problem of start up and shutting down from a non-eBus thread.
Classes wanting to send eBus notifications need to implement this interface.
Classes able to reply to eBus requests must implement this interface.
Classes wanting to send eBus requests must implement this interface.
Classes wanting to receive eBus notification messages need to implement this interface.
|FeedStatusCallback<T extends EFeed>||
An eBus client implementing either
This functional interface may be used to handle notification message delivery instead of
This functional interface may be used to handle reply message delivery instead of
Stores a set of
|EAbstractMultiKeyFeed<C extends EMessage,F extends EFeed>|
This immutable class contains eBus services, remote connection, and dispatcher configuration.
An application may create dispatch threads with a given unique name and the following parameters:
This immutable class stores the information pertaining to a remote eBus connection.
This immutable class stores the configuration for an eBus service.
Applications interface with eBus through feed instances.
Base class for eBus client callback tasks created by feeds.
This feed allows an
This feed allows an
This class encapsulates a connection between eBus applications.
This class represents an individual request, tracking the current request state and the remaining repliers.
Accepts new connections to this eBus application.
A remote eBus is either logged on or logged off.
An eBus client is either local to this JVM or in a remote JVM.
Enumerates the supported eBus dispatcher thread types.
Feed scope is either restricted to this JVM, to both this JVM and remote JVMs, and to remote JVMs only.
Enumerates the supported feed types.
Enumerates an eBus notification message feed state: either up or down.
A request is either not placed, active, done, or canceled.
Lists the thread types available to eBus users when configuring eBus.
EFeedobjects. All feed objects are associated with a unique type+topic
eBus v. 4.5.0 added the ability to directly add messages keys
to the eBus message key dictionary and retrieve keys from said
dictionary. Prior to this version, message keys were
indirectly added to the dictionary when opening feeds. This
feature added to support the new
multikey feeds. Multi-key feeds
may use a
match a variable number of keys. This is why
EFeed#loadKeys(java.io.ObjectInputStream) methods are
provided: unless the message key dictionary is populated with
keys prior to creating a multi-key query feed, the query would
find no matching keys.
A simple feed is associated with a single message key and messages are sent to or received from the feed only after the feed is opened and advertised/subscribed. Simple feeds provide no value added capabilities beyond this.
EPublishFeed: Publishers advertise and publish
notification messagesvia a publish feed instance.
ESubscribeFeed: Subscribers hook into this feed to receive notification messages.
EReplyFeed: Repliers advertise their ability to send
reply messagesin response to a
EReplyFeed.ERequestand not the
ERequestFeed: Requestors place request messages and receive replies using the request feed.
EFeedsubclass but acts as a proxy between an application object and multiple subordinate feeds. The multi-key feed is responsible for keeping the subordinate feeds in the same state (opened, advertised/subscribed, un-advertised/un-subscribed, closed), configuring the subordinate feeds with the same callbacks.
A multi-key feed is configured to work with a single notification/request message class and multiple message subjects. An application object needing a multi-key feed for multiple message classes must open a different multi-key feed for each message class.The supported multi-key feeds are:
EPublisher: Required interface for
ESubscriber: Required interface for
subscribingto notification messages.
EReplier: Required interface for
ERequestor: Required interface for
eBus v. 4.2.0 added support for using Java lambda expressions
as a callback target. An application still must implement the
matching role interface for a given feed but is not required
to override interface methods. Instead, an application uses
Java lambda expressions to define the callback target. See
RequestCallback for more
EServeron a configurable port and the other eBus application open a
ERemoteAppto the first application's host address and server port. Note that only one connection is allowed between eBus applications. eBus applications are not allowed to both open server ports and both establish a remote connection to the other.
(Note that all eBus applications are allowed to open an
EServer port. But if an eBus application attempts to
connect to another application
and a connection already exists, then the second
connection will be automatically closed.)