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.










