D_IP_CHANNEL_CLASS_DESTROY


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


D_IP_CHANNEL_CLASS_DESTROY Selector

Parameter: ChannelClassDestroyParam *param

Call type: Multi‐call

This call occurs only when the RIP is shut down, and is provided for the plugin to take whatever action is necessary to shut down a channel class.

      typedef struct channelClassDestroyParam { int32 version ;
      ChannelClassContext *channelClassContext ; int32 finalAttempt
      MultiCallData multi ;
      IPStatus status ;
    } ChannelClassDestroyParam ;

version

The version field should be ignored.

channelClassContext

A pointer to data the RIP holds about the channel class.

finalAttempt

The RIP makes a second attempt to destroy the channel class if the first attempt fails. If the finalAttempt flag is non‐zero, this is the last attempt that will be made to destroy the channel class. The plugin should therefore take whatever action it can to destroy the channel class. Whatever the result, the ChannelClassContext and associated memory are deallocated. Any pointers to them become invalid.

multi

Controls the sequence of calls to the selector. See The MultiCallData structure .

status

The plugin should set the IPmajor field of this IPStatus structure to IPS_OK if the call was successful and to IPS_FAIL otherwise. If IPS_FAIL is returned, the ChannelClassContext is left allocated, unless finalAttempt is set. The RIP calls the plugin again to make one more attempt to destroy the channel class.