(v13) Canceling a job in Harlequin Core using timelines
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP
This section provides guidelines and an example of how to cancel a job from within HHR using timelines. For more information see (v13) Timeline API .
For information on canceling a job in the GUI RIP see the section entitled: Abort output and write text in the Plugin kit guide for OEMs . For information on canceling a job in the Embedded RIP see the Harlequin Embedded SDK Developer's Guide .
As discussed in (v13) Timeline hierarchy timelines form a hierarchy, and given a timeline reference, a search through that hierarchy can be made to find a timeline of a required type. A single timeline reference can, therefore, identify not only the specific phase in question (such as rendering a particular page), but also by extension every encompassing stage, including the whole job.
Assuming a timeline reference of some kind is available (some_tl)
the timeline reference of the job can be found with the line:
job_tl = SwTimelineOfType(some_tl, SWTLT_JOB) ;
An interrupt event is available that takes such a timeline reference. In order to interrupt a specific job the timeline reference must be set to the job's SWTLT_JOB_STREAM timeline reference or any descendant thereof. Alternatively, all jobs can be interrupted by setting the timeline reference to 0. For example, to interrupt all jobs:
SWMSG_INTERRUPT msg;
msg.timeline = 0;
(void)SwEvent(SWEVT_INTERRUPT_USER, &msg, sizeof(msg));
The types of timeline that are descendants of SWTLT_JOB_STREAM include:
SWTLT_JOB SWTLT_INTERPRET_PAGE SWTLT_COMPOSITE_PAGE SWTLT_RENDER_PAGE
For more information see swtimelines.h.