Distributed Systems Network Management (DSNM) Subsystem Interface Development Guide
Command and Response Message Formats
D-4
109759—Distributed Systems Network Management (DSNM) Subsystem Interface
Development Guide
Sample I Process Program Code
Response Message Format
The response message begins with the command message, followed by an error code 
(ERROR), a count of response objects (RESPONSE^THINGS), and response object 
details in an object-characteristics array (THING): 
LITERAL max^response^things = 2;
STRUCT spiffy^response^def (*); ! Response message, which 
 ! contains cmd msg struct
 BEGIN 
 STRUCT cmd (spiffy^command^def);
 INT error;
 INT response^things;
 STRUCT thing (spiffy^thing^def) [0:max^response^things-1];
 END;
If an error occurs, an error code is returned in the first response; see “SPIFFY 
Subsystem Literal Definitions” later in this section. In this case, there are no response 
objects. If the command succeeds, the code COMMAND^DONE (0) is returned, along 
with response object(s).
If a TELLABOUT command specifies more objects than can be returned in a single 
response, the RESPONSE^CONTEXT field in the response message CMD structure is 
set to a nonzero value. In this case, returning the CMD structure exactly as it appears in 
the response message causes the next set of response objects to be returned. This 
process is repeated until the response message CMD.RESPONSE^CONTEXT is 0, 
indicating the return of all objects. 
The THING structure returns the characteristics of SPIFFY objects and is the same for 
all object types:  
 STRUCT spiffy^thing^def (*); 
 BEGIN
 INT type; ! object type
 INT name^occurs; ! length of object name
 STRING name [0:spiffy^name^len-1]; ! object name
 INT pop^name^occurs; ! length of name of
 ! object’s parent
 STRING pop^name[0:spiffy^name^len-1]; ! parent name
 ! For ASSEMBLYs and subordinates
 INT state; ! ASSEMBLY state
 INT color; ! and other essentials
 INT composition;
 ! For the various REACTOR components
 INT(32) temp; ! Degrees Kelvin
 INT(32) press; ! MM Hg
 INT(32) vol; ! Liters
 INT(32) n; ! Number of elements
 END;










