Package gaiasky.event
Class EventManager
java.lang.Object
gaiasky.event.EventManager
- All Implemented Interfaces:
IObserver
Event manager that allows for subscription of observers to events (identified
by strings), and also for the creation of event objects by anyone. Events can also
be added to be processed with a delay.
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
clearSubscriptions
(Event msg) Unregisters all the listeners for the specified message code.void
Dispatches any telegrams with a timestamp that has expired.static long
Returns the current time in milliseconds.boolean
hasSubscriptors
(Event event) boolean
isSubscribedTo
(IObserver o, Event event) boolean
void
Event notification call.void
Posts a new dataless event coming from the given source object.void
Posts a new event coming from the given source object and with the given data.void
postDelayed
(Event event, Object source, long delayMs, EventManager.TimeFrame frame, Object... data) Posts or registers a new event type with the given data.void
postDelayed
(Event event, Object source, long delayMs, Object... data) Posts or registers a new event type with the given data and the default time frame.static void
Posts an event to the default event manager instance.void
removeAllSubscriptions
(IObserver... listeners) Unregisters all the subscriptions of the given listeners.void
Registers a listener for the specified message code.void
Subscribes the given observer to the given event types.void
unsubscribe
(IObserver listener, Event event) Unregister the specified listener for the specified message code.void
unsubscribe
(IObserver listener, Event... events)
-
Field Details
-
instance
Singleton pattern
-
-
Constructor Details
-
EventManager
public EventManager()
-
-
Method Details
-
subscribe
Subscribes the given observer to the given event types.- Parameters:
observer
- The observer to subscribe.events
- The event types to subscribe to.
-
subscribe
Registers a listener for the specified message code. Messages without an explicit receiver are broadcast to all its registered listeners.- Parameters:
msg
- the message codelistener
- the listener to add
-
unsubscribe
-
unsubscribe
Unregister the specified listener for the specified message code.- Parameters:
event
- The message code.listener
- The listener to remove.
-
removeAllSubscriptions
Unregisters all the subscriptions of the given listeners.- Parameters:
listeners
- The listeners to remove.
-
clearSubscriptions
Unregisters all the listeners for the specified message code.- Parameters:
msg
- the message code
-
clearAllSubscriptions
public void clearAllSubscriptions() -
publish
Posts an event to the default event manager instance.- Parameters:
event
- The event.source
- The source object, if any.data
- The event data.
-
post
Posts a new dataless event coming from the given source object.- Parameters:
event
- The event.source
- The source object, if any.
-
post
Posts a new event coming from the given source object and with the given data.- Parameters:
event
- The event.source
- The source object, if any.data
- The event data.
-
postDelayed
Posts or registers a new event type with the given data and the default time frame. The default time frame can be changed using the eventEvent.EVENT_TIME_FRAME_CMD
. The event will be passed along after the specified delay time [ms] in the given time frame has passed.- Parameters:
event
- The event.source
- The source object, if any.delayMs
- Milliseconds of delay in the given time frame.data
- The event data.
-
postDelayed
public void postDelayed(Event event, Object source, long delayMs, EventManager.TimeFrame frame, Object... data) Posts or registers a new event type with the given data. The event will be passed along after the specified delay time [ms] in the given time frame has passed.- Parameters:
event
- The event.source
- The source object, if any.delayMs
- Milliseconds of delay in the given time frame.frame
- The time frame, either real time (user) or simulation time (simulation clock time).data
- The event data.
-
getCurrentTime
public static long getCurrentTime()Returns the current time in milliseconds. -
dispatchDelayedMessages
public void dispatchDelayedMessages()Dispatches any telegrams with a timestamp that has expired. Any dispatched telegrams are removed from the queue.This method must be called each time through the main loop.
-
hasSubscriptors
-
isSubscribedToAny
-
isSubscribedTo
-
notify
Description copied from interface:IObserver
Event notification call.
-