Skip to main content
Skip table of contents

Events

The event system is used to communicate, filter, and observe events of global interest in a thread-safe manner.

The event system is a generalized callback system that enables events and associated message structures to be issued by an originator and received by multiple handlers, regardless of the location of originator and handlers. The event system can be used to connect parts of the application together in a flexible and sophisticated manner.

There are a number of ways of using the event system:

  • Notification (signaling something to interested parties)
  • Permission (allowing a system to prevent an action from occurring)
  • Implementation (causing some action to occur, though not necessarily by one specific system)
  • Some combination of the above.

These various idioms are described in detail in the usage documentation.

The event system is built on top of the RDR system and uses a number of RDR return values. It is a general-purpose API and may be of use to OEM code in addition to the described RIP uses.

While using the RDR and Event systems provides a great deal of flexibility for developers, they also require equivalent responsibility to both document the expected protocols, and for clients to follow those protocols. Arbitrarily suppressing events or overriding RDRs may cause incorrect functioning of software that relies on them.

What is an Event?

An event is a identified callback associated with an optional message that is delivered to multiple handlers registered for that type of Event, in a priority order.

Event handlers

An event handler is a callback function. Handlers may be registered for one or more event types, and can respond to the event by:

  • Ignoring the event
  • Processing the event in some way and passing it on to lower-priority handlers.
  • Processing the event in some way and blocking lower-priority handlers.
  • Returning an error.

The expected behavior of handlers, and how the RIP responds to errors reported by event handlers, is defined by the protocol for the specific event type.

Uses for Events by the RIP core

Text sent to the RIP's console or monitor window is delivered through a Monitor Event. Together with Timeline events, intercepting monitor events can enhance error reporting, and provide enhanced timing and progress information to OEM code.

The application or skin code can be used to cancel jobs by issuing interrupt events.

The external Harlequin VariData (eHVD) protocol for caching and reusing rasters is based on events, as documented in eHVD interface.

Further information

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.