(FILECREATED " 8-AUG-83 20:29:45" ("compiled on " {INDIGO}SOURCES>LOOPSGATEWAY.;29) "28-JUN-83 18:54:59" recompiled exprs: Gateway.GetPostalBox POSTMONITOR PM.InitPostalServices in LOOPS.SYSOUT dated "25-JUL-83 17:39:18") (FILECREATED " 8-AUG-83 20:29:00" {INDIGO}SOURCES>LOOPSGATEWAY.;29 28746 changes to: (FNS PM.AddToDL PM.InitPostalServices Gateway.GetPostalBox POSTMONITOR) (VARS LOOPSGATEWAYCOMS) previous date: "14-JUL-83 05:19:05" {INDIGO}SOURCES>LOOPSGATEWAY.;27) Gateway.AddMeToDL D1 (I 1 DLName I 0 self) !@g §o ¿gA@g  (36Q RPCtoPO 32Q GetValue 16Q ERROR 6 GetValue) (27Q postIDlst 22Q PM.AddToDL 3 postalName) (13Q "Not yet Registerd with Post Master") Gateway.GetPostalBoxA0014 D1 (NAME ERRORSET L (2 ERRORSET.W 1 ERRORSET.V 0 ERRORSET.U) F 0 postIDlst) gP h(6 RPCtoPO) (2 PM.EstablishServices) NIL Gateway.GetPostalBox D1 (P 1 RESULT P 0 postIDlst I 2 postMasterAddress I 1 postalName I 0 self) A§o ¿`¦¿`˜`lð³(o`o`o` ¿g £¿A`hB¿o Yµ o °îY«Ao b°Þ@gII¹ ¿@gI ¿I¿@gH ¿@g@ghhg ¿@g@ghhg ¿@gg ¿@¿g ¿g@ghgggi ¿@g (427Q GetValue 417Q ADD.PROCESS 365Q DEL.PROCESS 362Q FIND.PROCESS 346Q PutValue 340Q CREATE.EVENT 330Q PutValue 325Q PutValue 303Q PutValue 300Q PutValue 256Q PutValue 237Q PutValue 226Q PutValue 206Q HELPCHECK 170Q HELPCHECK 156Q Gateway.GetPostalBoxA0014 130Q ETHERHOSTNUMBER 123Q EVALSERVER 117Q FIND.PROCESS 105Q CONCAT 22Q ETHERHOSTNUMBER 10Q ERROR) (424Q postalName 412Q RESTARTABLE 407Q POSTMAN 404Q NAME 375Q ProcessOutQ 371Q _ 357Q POSTMAN 353Q POSTMAN 343Q event 335Q outQ 322Q lastItem 314Q outQ 310Q outQ 275Q lastItem 267Q inQ 263Q inQ 252Q postIDlst 245Q \PostMaster.PupAddress 233Q postMasterAddresses 216Q postalName 146Q \PostMaster.PupAddress 133Q \MY.NSHOSTID 114Q EvalServerListening 110Q \MY.NSHOSTID 75Q \MY.NSHOSTNUMBER 63Q \MY.NSHOSTNUMBER 52Q \MY.NSHOSTNUMBER 35Q \MY.NSHOSTID 31Q \MY.NSHOSTID 25Q \My.PupAddress 14Q \My.PupAddress) (203Q "Name not acceptible. Type RETURN ' to try again" 165Q "Request for service timed out. Type OK to try again" 153Q (DUMMY.FOR.ERRORSET) 72Q "." 60Q "." 47Q "#NSID." 5 "name must be given to establish PostalBox") Gateway.Out D1 (I 0 self) @g ¡h@g@g  (31Q PutValue 25Q GetValue 6 GetValue) (22Q outQ 16Q outQ 3 outQ) NIL Gateway.OutP D1 (I 0 self) @g (6 GetValue) (3 outQ) NIL Gateway.ProcessOutQA0013 D1 (NAME ERRORSET L (2 ERRORSET.W 1 ERRORSET.V 0 ERRORSET.U) F 0 self F 1 msg) %gPg Pg QPg hj i(41Q RPCtoPO 30Q GetValue 20Q GetValue 11Q GetValue) (25Q postalName 15Q lastOutNum 6 receiver 2 PM.AddToMailQ) NIL Gateway.ProcessOutQ D1 (P 1 lastOutNum P 0 msg I 0 self) [`@[g ºKkJX²5@g@g kØ ¿o ¤°ô@]g ¼MkL•¿°¾@gg nˆ ¿°«(126Q AWAIT.EVENT 120Q GetValue 103Q BLOCK 71Q FetchMethodOrHelp 57Q BLOCK 53Q Gateway.ProcessOutQA0013 43Q PutValue 36Q GetValue 12Q FetchMethodOrHelp) (115Q event 112Q outQ 66Q OutP 33Q lastOutNum 27Q lastOutNum 7 Out) (50Q (DUMMY.FOR.ERRORSET)) Gateway.Quit D1 (I 0 self) @g ´g@g (25Q RPCtoPO 22Q GetValue 6 GetValue) (17Q postalName 13Q PM.Expunge 3 postalName) NIL Gateway.Receive D1 (I 0 self) @g ¡h@g@g  (31Q PutValue 25Q GetValue 6 GetValue) (22Q inQ 16Q inQ 3 inQ) NIL Gateway.ReceiveP D1 (I 0 self) @g (6 GetValue) (3 inQ) NIL Gateway.Send D1 (I 1 newMessage I 0 self) (@g@gg dA&¿g @gg (45Q NOTIFY.EVENT 42Q GetValue 30Q PutValue 15Q GetValue) (37Q event 34Q outQ 25Q lastItem 12Q lastItem 7 outQ 3 outQ) NIL Gateway.SendP D1 (I 0 self) @g (6 GetValue) (3 outQ) NIL Gateway.StoreIn D1 (I 3 listP I 2 newMessage I 1 seqNum I 0 self) ^A@g kØÙjð²9@gA @gC²@gg dB¿ Ž@gg dB&¿g A@g Ùjð¨Ao h(131Q HELPCHECK 115Q GetValue 104Q PutValue 71Q GetValue 56Q LAST 47Q GetValue 26Q PutValue 7 GetValue) (112Q lastSeqNum 101Q lastItem 66Q lastItem 63Q inQ 44Q lastItem 41Q inQ 32Q inQ 22Q lastSeqNum 4 lastSeqNum) (126Q " an out of order message from Postmaster") MasterGateway.GetPostalBox D1 (P 0 name I 2 postMasterAddress I 1 myName I 0 self) 4P@Zg ¹JABlIX@gg @\g »LglKH(46Q FetchMethodOrHelp 36Q PutValue 12Q GetSuperMethod) (53Q WorldMaster 43Q AddMeToDL 33Q Players 30Q receiver 7 GetPostalBox) NIL SlaveGateway.GetPostalBox D1 (P 0 name I 2 postMasterAddress I 1 myName I 0 self) 4P@Zg ¹JABlIX@gg @\g »LglKH(46Q FetchMethodOrHelp 36Q PutValue 12Q GetSuperMethod) (53Q Players 43Q AddMeToDL 33Q WorldMaster 30Q receiver 7 GetPostalBox) NIL RPCtoPO D1 (I 2 multiplicity I 1 ArgList I 0 Fun) ``ð•@A @A`B (26Q REMOTEAPPLY 14Q APPLY) (22Q \PostMaster.PupAddress 5 \PostMaster.PupAddress 2 \My.PupAddress) NIL ReceiveMail D1 (I 1 MSG I 0 seqNum) `Hg ¹H@AlI(14Q FetchMethodOrHelp) (11Q StoreIn 2 POSTMAN) NIL ReceiveMailLst D1 (I 1 MSGLST I 0 seqNum) `Hg ¹H@AilI(14Q FetchMethodOrHelp) (11Q StoreIn 2 POSTMAN) NIL PM.EstablishServices D1 (P 0 POSTALNAME I 0 L) gg@ Hd™`h(23Q ETHERHOSTNUMBER 12Q APPLY) (26Q \MY.NSHOSTID 5 PostalPatrons 2 PM.AddToDL) NIL PM.Expunge D1 (P 3 DL P 2 PAIR P 1 DLNAME I 0 NAME) <`1Hµi¹@I [ ¿@KÉ Z²KJKÉ  ¿HX°Î(62Q DREMOVE 41Q FASSOC 26Q PM.DelFromDL 22Q GETTOPVAL) (55Q PostalDL 50Q PostalDL 34Q PostalDL 2 ALL.DL'S) NIL PM.AddToDL D1 (P 2 PROCNAME P 1 ENTRY P 0 DL I 3 NSHOSTID I 2 PUPNUM I 1 NAME I 0 DLNAME) Ð@ 1Hd`ð³5¿o@ ¿AHÉ Y²2BIð³ECIð³;o °1É»A@glK³ÇhHhdddddhYHÉ¿IAjHÉBCh@gð³=Ag@g Z ¿gA@hgJgi ºIJ¿HÉ A(314Q NOTIFY.EVENT 271Q ADD.PROCESS 243Q DEL.PROCESS 240Q FIND.PROCESS 234Q PACK* 100Q ERROR 43Q ASSOC 30Q ERROR 3 GETTOPVAL) (307Q PostalDL 264Q RESTARTABLE 260Q NAME 247Q PM.DistributeMail 231Q .Mailer 225Q %. 216Q PostalPatrons 175Q PostalDL 154Q PostalDL 132Q PostalDL 115Q ADD 105Q PostalDL 36Q PostalDL 14Q PostalDLTYPE#) (75Q "Machine Name already in use" 24Q "Not a DL name ") PM.DelFromDLname D1 (P 0 DL I 3 NSHOSTID I 2 PUPADDR I 1 NAME I 0 DLNAME) 8@ Hd`ð³¿o@ ¿AHBC AɹA@glI³çh(40Q PM.Del.aux 30Q ERROR 3 GETTOPVAL) (55Q DELETE 45Q PostalDL 14Q PostalDLTYPE#) (24Q "Not a DL name ") PM.DelFromDL D1 (P 0 ENTRY I 3 NSHOSTID I 2 PUPADDR I 1 DL I 0 NAME) N@AÉ H´>BµC²BHð³CHð§o ¿H ¿AHAÉ h(110Q DREMOVE 71Q DEL.PROCESS 56Q ERROR 11Q ASSOC) (103Q PostalDL 76Q PostalDL 4 PostalDL) (53Q "Machine Name conflict when deleteing from DL") PM.AddToMailQ D1 (P 1 WriterNumPair P 0 DL I 3 POSTALNAME I 2 MSG I 1 outNum I 0 DLNAME) …@ !Hd`ð³U¿o@ ¿CHÉ Y³Cj¹HIHÉ  ¿AdIkØÙjð²1¿HÉB ¿IdkØ¿HÉ °!ɺ@ClJ³ªhIÙjð§Ao i(201Q HELP 140Q NOTIFY.EVENT 117Q TCONC 43Q FASSOC 30Q ERROR 3 GETTOPVAL) (145Q PostalDL 133Q PostalDL 111Q PostalDL 63Q PostalDL 56Q PostalDL 36Q PostalDL 14Q PostalDLTYPE#) (176Q "Out of sequence" 24Q "Not a DL name ") RPCtoGateway D1 (I 3 multiplicity I 2 Gateway.PupAddress I 1 ArgList I 0 Fun) `Bð•@A @ABC (22Q REMOTEAPPLY 12Q APPLY) (2 \My.PupAddress) NIL POSTMONITOR D1 (F 0 DeliveryHistory) ` ¿`oê``Ù``Ùëoêè¿`oê``ëoêè¿j¿`oê``ëoêè¿```hPc¿j¿°„(5 BLOCK) (172Q DeliveryTimeouts 167Q DeliveryAttempts 152Q %%DeliveryTimeout 147Q %%MsgsInSingleBag 144Q AvMultiBagLen 140Q %%DeliveryTimeout 126Q DeliveryAttempts 123Q DeliveryTimeouts 113Q %%DeliveryTimeout 107Q #MsgsInSingleBag 104Q #MsgsDelivered 77Q %%MsgsInSingleBag 65Q #MsgsDelivered 62Q #MsgsInSingleBag 52Q %%MsgsInSingleBag 46Q AvMultiBagLen 33Q DeliveryTimeouts 30Q DeliveryAttempts 24Q #MsgsInSingleBag 21Q #MsgsDelivered 11Q AvMultiBagLen 2 PM.StatsTimeDelta.ms) (133Q .375 117Q .625 72Q .375 56Q .625 41Q .375 15Q .625) PM.InitDL D1 (I 2 UpdateFilterFN I 1 SendToFilterFN I 0 DLNAME) j@d`š¿o@ ¿@`d@¿AµgHdI¿BµgHdI¿o HdI ¿hh HdI¿ @`@(136Q SETTOPVAL 121Q TCONC 101Q CREATE.EVENT 17Q ERROR) (146Q ALL.DL'S 142Q ALL.DL'S 60Q TRUE 40Q TRUE 24Q PostalDLTYPE# 4 ALL.DL'S) (76Q "ReceivedMail" 13Q "DL name already in use") PM.InitPostalServicesA0015 D1 (I 1 NAME I 0 HANDLE) gAhddi A kØð´@ (30Q DEL.PROCESS 17Q NCHARS 13Q STRPOS) (2 .Mailer) NIL PM.InitPostalServices D1 (F 0 EvalServerGaggedHosts F 1 DeliveryHistory) ¬hc`˜`lð³(o`o`o` ¿`¦¿g g £¿g jdojdohcogi g g g g ``h(240Q PM.InitDL 232Q PM.InitDL 224Q PM.InitDL 216Q SETTOPVAL 210Q ADD.PROCESS 134Q DEL.PROCESS 131Q FIND.PROCESS 122Q EVALSERVER 116Q FIND.PROCESS 110Q MAP.PROCESSES 76Q ETHERHOSTNUMBER 61Q CONCAT) (246Q \MY.NSHOSTID 243Q \My.PupAddress 235Q Players 227Q WorldMaster 221Q PostalPatrons 213Q ALL.DL'S 204Q RESTARTABLE 172Q %%DeliveryTimeout 163Q DeliveryTimeouts 157Q DeliveryAttempts 153Q %%MsgsInSingleBag 144Q #MsgsInSingleBag 140Q #MsgsDelivered 126Q POSTMONITOR 113Q EvalServerListening 105Q PM.InitPostalServicesA0015 101Q \My.PupAddress 70Q \My.PupAddress 64Q \MY.NSHOSTID 51Q \MY.NSHOSTNUMBER 37Q \MY.NSHOSTNUMBER 26Q \MY.NSHOSTNUMBER 11Q \MY.NSHOSTID 5 \MY.NSHOSTID) (201Q (POSTMONITOR) 167Q 0.0 150Q 0.0 46Q "." 34Q "." 23Q "#NSID.") PM.DistributeMailA0046 D1 (NAME ERRORSET L (2 ERRORSET.W 1 ERRORSET.V 0 ERRORSET.U) F 0 nextSeqNum F 1 msgLst F 2 PatronDLEntry) gPQhRj h(20Q RPCtoGateway) (2 ReceiveMailLst) NIL PM.DistributeMail D1 (P 10Q thisLen P 7 lenRemaining P 6 lastCell P 4 msgLst P 3 nextSeqNum P 2 nextMsgPtr P 1 PatronDLEntry P 0 DL I 1 DLNAME I 0 PatronNAME) º A Q@HÉ Y¿L²UIkØ»o `kØ¿²,IJ¿IK¿L ½`MØ¿Mkð´ `kØ¿h\‹`kØ¿` °«IZµHÉ nˆ °•h\nJ²*OOµJ lØÙ_J _ñœJºNdJ&¿¾°Ö±ÿ](243Q NCHARS 227Q NCHARS 174Q AWAIT.EVENT 146Q BLOCK 74Q LENGTH 42Q PM.DistributeMailA0046 20Q ASSOC 3 GETTOPVAL) (164Q PostalDL 143Q PM.CATATONIC.WAIT.ms 137Q DeliveryTimeouts 132Q DeliveryTimeouts 123Q #MsgsInSingleBag 116Q #MsgsInSingleBag 105Q #MsgsDelivered 100Q #MsgsDelivered 52Q DeliveryAttempts 45Q DeliveryAttempts 13Q PostalDL) (37Q (DUMMY.FOR.ERRORSET)) (PRETTYCOMPRINT LOOPSGATEWAYCOMS) (RPAQQ LOOPSGATEWAYCOMS ((CLASSES Gateway MasterGateway SlaveGateway) (FNS Gateway.AddMeToDL Gateway.GetPostalBox Gateway.Out Gateway.OutP Gateway.ProcessOutQ Gateway.Quit Gateway.Receive Gateway.ReceiveP Gateway.Send Gateway.SendP Gateway.StoreIn MasterGateway.GetPostalBox SlaveGateway.GetPostalBox) (COMS (* Items necessary for Postal Users) (INITVARS (\MY.NSHOSTID NIL) ( \My.PupAddress NIL) (\PostMaster.PupAddress NIL) (POSTMAN NIL)) (GLOBALVARS \MY.NSHOSTNUMBER \MY.NSHOSTID \My.PupAddress \PostMaster.PupAddress POSTMAN) (DECLARE: DONTCOPY (MACROS PostMasterPupAddress HostAddresses)) (FNS RPCtoPO ReceiveMail ReceiveMailLst)) (COMS (* Items necessary for PostMaster) (INITVARS (ALL.DL'S NIL) (\MY.NSHOSTID NIL) (\My.PupAddress NIL) ( PM.CATATONIC.WAIT.ms 10000)) (GLOBALVARS \MY.NSHOSTNUMBER ALL.DL'S \MY.NSHOSTID \My.PupAddress PM.CATATONIC.WAIT.ms) (DECLARE: DONTCOPY (MACROS HostAddresses)) (RECORDS PostalDL DLEntry) (FNS PM.EstablishServices PM.Expunge PM.AddToDL PM.DelFromDLname PM.DelFromDL PM.AddToMailQ RPCtoGateway POSTMONITOR) (INITVARS (PM.StatsTimeDelta.ms 10000) (%#MsgsDelivered 0) (%#MsgsInSingleBag 0) ( %%MsgsInSingleBag 0.0) (DeliveryAttempts 0) (DeliveryTimeouts 0) (%%DeliveryTimeout 0.0) ( AvMultiBagLen 0) (DeliveryHistory NIL)) (GLOBALVARS PM.StatsTimeDelta.ms %#MsgsDelivered %#MsgsInSingleBag %%MsgsInSingleBag DeliveryAttempts DeliveryTimeouts %%DeliveryTimeout AvMultiBagLen NIL) (FNS PM.InitDL PM.InitPostalServices PM.DistributeMail)) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA PM.EstablishServices) (NLAML PM.AddToDL PM.DistributeMail PM.AddToMailQ PM.DelFromDLname) (LAMA))))) (DEFCLASSES Gateway MasterGateway SlaveGateway) (DEFCLASS Gateway (MetaClass Class Edited: (* dgb: "12-JUL-83 16:56")) (Supers Object) (ClassVariables ) (InstanceVariables (inQ NIL doc (* queue of messages coming in from outside. lastItem property is pointer to lastItem on queue) lastItem NIL) (outQ NIL doc (* queue of messages to be sent out. lastItem property is pointer to lastItem on queue) lastItem NIL) (outProcess NIL doc (* Process serving the outgoing queue)) (postalName NIL doc (* name to appear on PostBox)) (postMasterAddresses NIL doc (* List of pupHostnum and NSHostID for correspondent site.)) (postIDlst NIL doc (* "cached" list used as args for REMOTEVAL)) (receiver NIL doc (* name of postMaster distribution list which will be receiving mail from you)) (lastSeqNum 0 doc (* Sequence number of the last message into inQ)) ( lastOutNum 0 doc (* Sequence number of last message sent from outQ))) (Methods (GetPostalBox Gateway.GetPostalBox args (postalName postMasterAddress) doc (* Contact PostMaster and request a post box under the name postalName)) (Out Gateway.Out args NIL doc (* Takes a message from outQ. Return NIL if none.)) (ProcessOutQ Gateway.ProcessOutQ args NIL doc (* Looping process for sending out messages on OutQ)) (Receive Gateway.Receive args NIL doc (* Return a message from inQ. Return NIL if none.)) ( ReceiveP Gateway.ReceiveP args NIL doc (* Test if there are any items on queue whichare unread)) (Send Gateway.Send args (newMessage) doc (* Store the new Message in the inQ)) (SendP Gateway.SendP args NIL doc (* Test if anything on outQ to be sent)) (StoreIn Gateway.StoreIn args (newMessage) doc (* Store the new Message in the inQ)) (AddMeToDL Gateway.AddMeToDL args (DLName) doc (* Add me to distribution list DLName on postMaster)) (Quit Gateway.Quit args NIL doc (* Removes this guy from the postal services)) (OutP Gateway.OutP args NIL doc (* Test if anything on outQ to be sent)))) (DEFCLASS MasterGateway (MetaClass Class Edited: (* dgb: " 5-JUL-83 17:14")) (Supers Gateway) ( ClassVariables) (InstanceVariables) (Methods (GetPostalBox MasterGateway.GetPostalBox args (myName postMasterAddress) doc (* Get a postal connection for the WorldMaster)))) (DEFCLASS SlaveGateway (MetaClass Class Edited: (* dgb: " 6-JUL-83 13:01")) (Supers Gateway) ( ClassVariables) (InstanceVariables) (Methods (GetPostalBox SlaveGateway.GetPostalBox args (myName postMasterAddress) doc (* Get postal connection for the WorldMaster)))) (RPAQ? \MY.NSHOSTID NIL) (RPAQ? \My.PupAddress NIL) (RPAQ? \PostMaster.PupAddress NIL) (RPAQ? POSTMAN NIL) (RPAQ? ALL.DL'S NIL) (RPAQ? \MY.NSHOSTID NIL) (RPAQ? \My.PupAddress NIL) (RPAQ? PM.CATATONIC.WAIT.ms 10000) (DATATYPE PostalDL ((DLName POINTER) (SendToFilterFN POINTER) (* The SendToFilterFN field is a function of two args -- DL name and POSTALNAME of sender -- which must return non-NIL if the "mailing" is permitted.) (UpdateFilterFN POINTER) (* The UpdateFilterFN is a function of three args -- POSTALNAME of sender, DL name, and reason (either ADD or DELETE) -- which must return non-NIL if the updating is permitted.) (MSGQ POINTER) (* The MSGQ field is a TCONC queue, where the first item is merely NIL -- The Patrons field is a list of DLEntry items) (Patrons POINTER) (LetterWritersAlist POINTER) (PostEVENT POINTER)) SendToFilterFN _ (FUNCTION TRUE) UpdateFilterFN _ (FUNCTION TRUE) MSGQ _ (TCONC (LIST NIL)) PostEVENT _ (CREATE.EVENT "ReceivedMail")) (RECORD DLEntry (POSTALNAME lastSeqNum MSGQptr PUPNUM NSHOSTID DLProc) (* The MSGQptr points into tails of the Q (in TCONC form) of messages sent to this DL. CAR of the ptr is the most recent message sent to this patron (first message is NIL))) (/DECLAREDATATYPE (QUOTE PostalDL) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER))) (RPAQ? PM.StatsTimeDelta.ms 10000) (RPAQ? %#MsgsDelivered 0) (RPAQ? %#MsgsInSingleBag 0) (RPAQ? %%MsgsInSingleBag 0.0) (RPAQ? DeliveryAttempts 0) (RPAQ? DeliveryTimeouts 0) (RPAQ? %%DeliveryTimeout 0.0) (RPAQ? AvMultiBagLen 0) (RPAQ? DeliveryHistory NIL) (PUTPROPS LOOPSGATEWAY COPYRIGHT ("Xerox Corporation" 1983)) NIL