Distributed Systems Network Management (DSNM) Subsystem Interface Development Guide
Sample I Process Program Code
Distributed Systems Network Management (DSNM) Subsystem Interface Development
Guide—109759 D-17
Sample User-Written Code for SPIFFY Subsystem
Interface Process
ELSE
BEGIN ! FS Error
frameobj.FOBJ.Z^RESULT := ZDSN^ERR^FS^ERR;
IF (er := append^numeric^resulttext (frameobj, $DBL (inobj.er)))
THEN RETURN _RC^ABORT(er);
END;
_RELEASE^OUTPUT (frameobj);
RETURN _RC^NULL;
END;
_RC^TYPE PROC format^normal^object (obj^arg);
INT .EXT obj^arg;
BEGIN
! Generate output object for an input object
INT .EXT cx (cx^def) = _THREAD^CONTEXT^ADDRESS;
INT .EXT inobj (object^lm^def) = obj^arg;
INT .EXT frameobj (frame^output^lm^def);
INT er;
IF _OFF (inobj.cf, c^info) THEN RETURN _RC^NULL;
IF _ISNULL(@frameobj := _PUT^LM (cx._OUTPUT.OBJECTLIST,,$LEN (frameobj)))
THEN RETURN _RC^ABORT (ZDSN^ERR^MEMORY);
IF er := _FOBJECT^INIT (frameobj.FOBJ, inobj.FOBJ) THEN
RETURN _RC^ABORT (er);
IF _ON (inobj.cf, c^replystate) THEN
frameobj.FOBJ.Z^RESULT := inobj.dsnmstate
ELSE frameobj.FOBJ.Z^RESULT := 0;
_RELEASE^OUTPUT (frameobj);
RETURN _RC^NULL;
END;
---------------------------------------------------------------------
---------------------------------------------------------------------
-------------- Command Thread _THREAD Procs -------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
_THREAD^PROC (info^cmd^proc); FORWARD;
_THREAD^PROC (action^cmd^proc); FORWARD;
_THREAD^PROC (_COMMAND^PROC);
BEGIN
! First command thread proc. Analyze command and process objects
! one at a time until we are done. Then stop.
INT .EXT cx (cx^def) = _THREAD^CONTEXT^ADDRESS;
INT .EXT inobj (object^lm^def), .EXT outobj (object^lm^def);
INT .EXT thing (spiffy^thing^def);
INT er,k;
_RC^TYPE rc;
INT smodf, amodf, rmodf, emodf;
_LISTPOINTER (temp);
Note. This does not illustrate the processing of an INFO command, and shows incomplete
processing of the STATUS command. It only produces output for a BRIEF response modifier; it
does not produce the output for a DETAIL RMOD.