OSI/AS Management Programming Manual

Management Program Example
Sample Programs
C–10 056785 Tandem Computers Incorporated
zOsi^Val^Min^BufLen BYTES;
complete := zSpi^Val^False;
WHILE ( complete = zSpi^Val^False ) DO
BEGIN
-- Send the command to the OSI/AS subsystem.
CALL Send^SpiCmd;
CALL Reset^SpiBuf;
-- Count number of response records in the reply.
token^id := zSpi^Tkn^DataList;
SSErr := SSGetTkn( Spi^Buffer,
zSpi^Tkn^Count,
token^id,
1,
DataList^Count );
IF (SSErr <> zSpi^Err^OK) THEN CALL Debug;
FOR DataList^Index := 1 TO DataList^Count DO
BEGIN
-- Open the first response list.
SSErr := SSGetTkn( Spi^Buffer,
zSpi^Tkn^DataList,
DataList^Index );
IF (SSErr <> zSpi^Err^OK) THEN CALL Debug;
-- Get zCom^Tkn^Objtype.
SSErr := SSGetTkn( Spi^Buffer,
zCom^tkn^Objtype,
Object^type );
IF (SSErr <> zSpi^Err^OK) THEN CALL Debug;
CALL Write( Term^fn, Term^Buf, 0 );
CASE Object^type OF
BEGIN
zCom^Obj^SUBSYS ->
CALL Write( Term^fn,
Objectnm1 [1],
Objectnm1 [0] );
zCom^Obj^SERVICE ->
CALL Write( Term^fn,
Objectnm2 [1],
Objectnm2 [0] );
zCom^Obj^PROCESS ->
CALL Write( Term^fn,
Objectnm3 [1],
Objectnm3 [0] );
zCom^Obj^PROFILE ->
CALL Write( Term^fn,
Objectnm4 [1],
Objectnm4 [0] );
zCom^Obj^ENTRY ->
CALL Write( Term^fn,
Objectnm5 [1],
Objectnm5 [0] );
OTHERWISE ->