Next: , Previous: struct x1f4_linetext_type, Up: Application Interface Types


3.3.2.3 struct x1f4_nodelink_type

typedef struct x1f4_nodelink_type {
    int (*miss) (void *, struct x1f4_nodelink_type **,
		 struct x1f4_nodelink_type *);
    void *slip;
} x1f4_nodelink_type;

The struct x1f4_nodelink_type record describes some reference holding object and the object associated mechanics of cycle detection.

See Detecting Cycles.

See Reference Tracking Mechanics.

Data types accomodating the libx1f4i0 libraries type system and for which data may be referred and may hold references are expected to include some struct x1f4_nodelink_type record field in their definition.

See Object Classes.

See Libraries For Interpreted Languages.

Such field is not expected to be used outside cycle detection logic.

slip
The slip field is some pointer providing for the necessary record space of the cycles detection algorithm. It needs be NULL outside the cycles detection algorithm.
miss
The miss field is the address of the routine determining whether the object embedding this very record is part of some set of objects referring one each other and being not referred from outside this set. In effect, the routine is the cycle detector itself.

When called, the miss routine is supplied the execution context, some address of some struct x1f4_nodelink_type pointer and the address at which the struct x1f4_nodelink_type record from which the miss method was picked up is stored (it is expected that the address of the object embedding this struct x1f4_nodelink_type record may be derived from this last argument), as arguments, in this order.

How the miss method is expected to derive its result from its input is detailed in the cycle detection algorithm description.

See Detecting Cycles.