Exchange/RJE Manual
Send/Receive Program Example
Example Programs
104698 Tandem Computers Incorporated D–7
Page 8 [1] $RJE.EXCHAPPL.RJEPROG 1991-06-17 11:05:47
CREATE^LINE^SERVER
304. 000530 1 1 ! build startup message for EXCHANGE/RJE line server !
305. 000530 1 1 startmsg.msg^code := startup^message;
306. 000532 1 1 startmsg.params ':=' [40*[" "]];
307. 000544 1 1 iparams ':=' "LINE";
308. 000553 1 1 iparams[3] ':=' startmsg.infile.volume for 4;
309. 000561 1 1
310. 000561 1 1 ! send startup message to EXCHANGE/RJE line server !
311. 000561 1 1 CALL WRITE (server^fnum, startmsg, $LEN(startmsg));
312. 000571 1 1 IF <>
313. 000571 1 1 THEN
314. 000572 1 1 BEGIN
315. 000572 1 2 CALL FILEINFO (server^fnum, error); ! use -1 if open fails !
316. 000603 1 2 IF error <> 70 ! error <> continue file operation
317. 000603 1 2 THEN
318. 000606 1 2 BEGIN
319. 000606 1 3 sbuffer ':=' ["WRITE STARTUP FAILED -- ERROR: "] -> @sp;
320. 000617 1 3 write^count := @sp '-' @sbuffer;
321. 000623 1 3 CALL NUMOUT (sbuffer[write^count-3], error, 10, 3);
322. 000633 1 3 CALL end^it^all (ibuffer, write^count, server^fnum);
323. 000641 1 3 end^loop := 1;
324. 000643 1 3 RETURN;
325. 000644 1 3 END;
326. 000644 1 2 END;
327. 000644 1 1 ! close line server to inform that all startup messages have been sent !
328. 000644 1 1 CALL CLOSE (server^fnum);
329. 000651 1 1 IF <>
330. 000651 1 1 THEN
331. 000652 1 1 BEGIN
332. 000652 1 2 CALL FILEINFO (server^fnum, error); ! use -1 if open fails !
333. 000663 1 2 sbuffer ':=' ["CLOSE ATTEMPT FAILED -- ERROR: "] -> @sp;
334. 000674 1 2 write^count := @sp '-' @sbuffer;
335. 000700 1 2 CALL NUMOUT (sbuffer[write^count-3], error, 10, 3);
336. 000710 1 2 CALL end^it^all (ibuffer, write^count, server^fnum);
337. 000716 1 2 end^loop := 1;
338. 000720 1 2 RETURN;
339. 000721 1 2 END;
340. 000721 1 1
341. 000721 1 1 ! OPEN line server process name $LNSRV !
342. 000721 1 1 CALL OPEN (server^open^name, server^fnum); ! single open; wait i/o
343. 000731 1 1 IF <>
344. 000731 1 1 THEN
345. 000732 1 1 BEGIN
346. 000732 1 2 CALL FILEINFO (server^fnum, error); ! use -1 if open fails !
347. 000743 1 2 sbuffer ':=' ["OPEN ATTEMPT FAILED -- ERROR: "] -> @sp;
348. 000754 1 2 write^count := @sp '-' @sbuffer;
349. 000760 1 2 CALL NUMOUT (sbuffer[write^count-3], error, 10, 3);
350. 000770 1 2 CALL end^it^all (ibuffer, write^count);
351. 000776 1 2 end^loop := 1;
352. 001000 1 2 RETURN;
353. 001001 1 2 END;
354. 001001 1 1
355. 001001 1 1 ! Don't delete line server process after it is closed !
356. 001001 1 1 CALL SETMODE (server^fnum
357. 001001 1 1 , function^44
358. 001001 1 1 , keep^after^close
359. 001001 1 1 , null);