Distributed Systems Network Management (DSNM) Subsystem Interface Development Guide

I Process Development Process
Distributed Systems Network Management (DSNM) Subsystem Interface Development
Guide109759 3-31
Initializing Object List Members: _FOBJECT^INIT
Example
In the following example, an output object is initialized. The output object is derived by
processing its source input object; its status, object type, and object name are filled in:
STRUCT input^lm^def (*);
BEGIN
_INPUT^LM^HEADER;
...
END;
STRUCT output^lm^def (*);
BEGIN
_OUTPUT^LM^HEADER;
...
END;
STRUCT command^context^def (*);
BEGIN
_COMMAND^CONTEXT^HEADER;
INT .EXT inobj (input^lm^def);
INT .EXT outobj (output^lm^def);
END;
!Thread proc locals!
INT .EXT cx (command^context^def) = _THREAD^CONTEXT^ADDRESS;
INT .EXT in (input^lm^def) := @cx._INPUT;
INT .EXT out (output^lm^def) := @cx._OUTPUT;
.
.
.
! Create output list member
IF _ISNULL (@cx.outobj := _PUT^LM (out.OBJECTLIST,,
$LEN (cx.outobj)))
THEN ... <out of available memory> ;
.
.
.
IF (error := _FOBJECT^INIT (cx.outobj.FOBJ,,
cx.inobj.FOBJ))
THEN ... <error exit> ;
cx.outobj.FOBJ.Z^RESULT := <status of subordinate>;
cx.outobj.FOBJ.Z^OBJTYPE ':=' <type of subordinate>;
cx.outobj.FOBJ.Z^OBJNAME ':=' <name of subordinate>;
.
.
.