Skip to main content
Skip table of contents


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


Parameter: TickleParam *param

Call type: Single‐call

This is the main call available to a channel or channel class for interaction with the outside world. It is from here that data is transferred to the RIP via the plugin, and also where jobs are noticed to be arriving.

Once a channel has been created, D_IP_OBJECT_TICKLE calls are made to it, at intervals determined initially by the defaultChannelTickle field of the channelClassDescription structure.

If the channel receives PostScript language jobs, D_IP_OBJECT_TICKLE will mainly need to monitor the channel for incoming data and set the channelContext ’s dataAvailable field when some arrives.

However, it may also need to respond to status requests, depending on the protocol of the input device. (Channel classes may also ask to be tickled if necessary. This is done by setting the CCF_CHANNEL_CLASS_NEEDS_TICKLE flag in the ChannelClassDescription structure.)

Once the channel is open, the tickles become more frequent: they occur as frequently as the RIP can possibly make them. Data is transferred to and from the RIP as it becomes available. This is done using the plugin library calls to access the dataInBuffer and dataOutBuffer of the channelContext . See Input and filter plugin buffer access functions .

When the plugin detects end‐of‐file status in its data it sets the status code IPS_EOF in the

dataInStatus field of the channelContext . Once the RIP has emptied the buffer, it closes the channel.

A filter plugin both takes data from the dataOutBuffer and puts it into the dataInBuffer , using plugin library calls discussed in Input and filter plugin buffer access functions to do so. It

detects that there is no more data to be transformed by checking for IPS_EOF in the dataOutStatus of the channelContext .

      typedef struct tickleParam { int32 version ;
      int32 objectType ;
      void *objectContext ; IPStatus status ;
    } TickleParam ;


The version field should be ignored.


The RIP sets this field to indicate that the call refers to a channel with OBJTYPE_CHANNEL , or to a channel class with OBJTYPE_CHANNELCLASS . Calls are only made for a channel class if the CCF_CHANNEL_CLASS_NEEDS_TICKLE flag of the channelClassDescription structure is set.


If the call refers to a channel (objectType is OBJTYPE_CHANNEL ) this is a pointer to the channelContext structure for the channel. If the call refers to a channel class (objectType is OBJTYPE_CHANNELCLASS ) this is a pointer to the channelClassContext structure for the channel class.


The plugin must set the IPmajor field of this IPStatus structure to IPS_OK .

Note: It must not set this field to indicate a read or write error or end‐of‐file for a channel. This is done by setting the dataInStatus or dataOutStatus field of the channelContext structure.

JavaScript errors detected

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

If this problem persists, please contact our support.