Created Date: 16 Mar, 2022 14:17
Last Modifed Date: 16 Mar, 2022 14:17

This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP

Timelines naturally form a hierarchy. So when a timeline is created it can be defined with a parent another timeline reference. A timeline is a child of another timeline or an autonomous timeline in its own right. The reason for this hierarchy is that in a multithreaded and more especially a pipelined RIP, (in fact any program that has to deal with more than one thing at a time), you can have a number of distinct elements of the same type all of which will have their own lifetime. For example, in a word processing program you can have a number of documents all of which were opened at a different times. A method of unambiguously referring to each of these documents is required. For example, if you have something associated with a particular document, such as an open dialog, there is no point in closing that dialog when an unrelated document closes.

The timeline system provides a method of unique identification which is retained even if the entity has ceased to exist, and if you did try to use it you would get a “safe” error result.

The availability of a hierarchy allows things to be broken up or sub-divided so that you can then have a single reference to a very specific item within a system. For example, in a word processor program you could have a reference to an individual paragraph or an individual photo on a page, and because the timeline that represents that entity is part of a hierarchy, that single reference, as well as referring to the paragraph, or the photo, also uniquely identifies the page and the document which it forms part of.

There are API calls that, given a timeline reference, you can ask for a timeline in that hierarchy of a particular type. In the case of the RIP, with a timeline reference, you can ask for a core job timeline that is part of a hierarchy. This means you can have a reference to a very specific sub-division, and if you are interested in the overall job, one call will give you the reference for that overall job.

Examples of things a timeline can represent are; a print job; the RIP skin's concept of a job; the RIP core's concept of a job; a font cartridge; a fuser unit or a print head. The reason that a timeline can represent any of these is that it is a way of uniquely referring to some entity that can take its place within a hierarchy belonging to a number of other things.