Creating Customized Component Drivers


The driver routine performs the physical manipulation of the component for Deltanji. Each time Deltanji needs to copy, delete or otherwise access a component, it calls the appropriate function in the component driver routine. Each function is simple and can be written directly in the COS / M programming language.

A programmer can create a customized component driver to handle components in ways other than those provided by the standard Deltanji component drivers. In order for Deltanji to recognize the new driver, an entry must be set up in the component driver table. A component type code should be used to identify the new component type and a routine created whose name begins %vc1x and is followed by the component type code. For example, a new component type YABC requires a component driver named %vc1xYABC. A number of functions with standard line labels must be incorporated into the component driver routine.

Component type codes must conform to the pattern 1.AN and are typically entirely uppercase. In any case, avoid using a lowercase first character so that the driver routine name doesn't risk colliding with one of the non-driver %vc1x* routines in the product.

The Y* set of names is reserved for sites to create and maintain their own custom component types in. George James Software will not use that range for drivers that form part of the standard product.

If George James Software is commissioned to create and maintain a site-specific component type it will typically be named in the Z* range.

When choosing codes for custom component types you create, be aware that the default naming logic for new objects uses the component type code as a suffix in the object's base name, and that when a transfer involves multiple objects these are processed in the collating sequence of the object names. For example, if a custom dictionary-definition component needs to be transferred to a location before a related dictionary-content component, choose a component type code for the latter that collates after the one you choose for the former. Alternatively, create a custom function for deriving object names.