[614] | 1 | BSDX23 ; IHS/OIT/HMW - WINDOWS SCHEDULING RPCS ;
|
---|
[1085] | 2 | ;;1.5;BSDX;;Jan 25, 2011
|
---|
[614] | 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | EVENT(BSDXEVENT,BSDXPARAM,BSDXSIP,BSDXSPT) ;EP
|
---|
| 6 | ;Raise event to interested clients
|
---|
| 7 | ;Clients are listed in ^BSDXTMP("EVENT",EVENT_NAME,IP,PORT)
|
---|
| 8 | ;BSDXSIP and BSDXSPT represent the sender's IP and PORT.
|
---|
| 9 | ;The event will not be raised back to the sender if these are non-null
|
---|
| 10 | ;
|
---|
| 11 | Q:'$D(^BSDXTMP("EVENT",BSDXEVENT))
|
---|
| 12 | S BSDXIP=0 F S BSDXIP=$O(^BSDXTMP("EVENT",BSDXEVENT,BSDXIP)) Q:BSDXIP="" D
|
---|
| 13 | . S BSDXPORT=0 F S BSDXPORT=$O(^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)) Q:'+BSDXPORT D
|
---|
| 14 | . . I BSDXIP=BSDXSIP Q ;,BSDXPORT=BSDXSPT Q
|
---|
| 15 | . . D CALL^%ZISTCP(BSDXIP,BSDXPORT,5)
|
---|
| 16 | . . I POP K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT) Q
|
---|
| 17 | . . ;U IO R X#3:5
|
---|
| 18 | . . I X'="ACK" K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT) Q
|
---|
| 19 | . . S BSDXPARAM=$S(BSDXPARAM="":"",1:U_BSDXPARAM)
|
---|
| 20 | . . U IO W BSDXEVENT,BSDXPARAM,!
|
---|
| 21 | . . D ^%ZISC
|
---|
| 22 | . . Q
|
---|
| 23 | . Q
|
---|
| 24 | Q
|
---|
| 25 | ;
|
---|
| 26 | EVERR(BSDXEVENT,BSDXIP,BSDXPORT) ;
|
---|
| 27 | ;
|
---|
| 28 | Q:$G(BSDXEVENT)=""
|
---|
| 29 | Q:$G(BSDXIP)=""
|
---|
| 30 | Q:$G(BSDXIP)=""
|
---|
| 31 | K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)
|
---|
| 32 | Q
|
---|
| 33 | ;
|
---|
| 34 | REGET ;EP
|
---|
| 35 | ;Error trap from REGEVNT
|
---|
| 36 | ;
|
---|
| 37 | I '$D(BSDXI) N BSDXI S BSDXI=999
|
---|
| 38 | S BSDXI=BSDXI+1
|
---|
| 39 | D REGERR(BSDXI,99)
|
---|
| 40 | Q
|
---|
| 41 | ;
|
---|
| 42 | REGERR(BSDXI,BSDXERID) ;Error processing
|
---|
| 43 | S BSDXI=BSDXI+1
|
---|
| 44 | S ^BSDXTMP($J,BSDXI)=BSDXERID_$C(30)
|
---|
| 45 | S BSDXI=BSDXI+1
|
---|
| 46 | S ^BSDXTMP($J,BSDXI)=$C(31)
|
---|
| 47 | Q
|
---|
| 48 | ;
|
---|
| 49 | ;
|
---|
| 50 | REGEVNT(BSDXY,BSDXEVENT,BSDXIP,BSDXPORT) ;EP
|
---|
| 51 | ;RPC Called by client to inform RPMS server of client's interest in BSDXEVENT
|
---|
| 52 | ;Returns RECORDSET with field ERRORID.
|
---|
| 53 | ;If everything ok then ERRORID = 0;
|
---|
| 54 | ;
|
---|
| 55 | N BSDXI
|
---|
| 56 | S BSDXI=0
|
---|
| 57 | S X="REGET^BSDX23",@^%ZOSF("TRAP")
|
---|
| 58 | S BSDXY="^BSDXTMP("_$J_")"
|
---|
| 59 | S ^BSDXTMP($J,0)="I00020ERRORID"_$C(30)
|
---|
| 60 | I '+BSDXPORT D REGERR(BSDXI,1) Q
|
---|
| 61 | I BSDXIP="" D REGERR(BSDXI,2) Q
|
---|
| 62 | S ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)=""
|
---|
| 63 | ;
|
---|
| 64 | S BSDXI=BSDXI+1
|
---|
| 65 | S ^BSDXTMP($J,BSDXI)="0"_$C(30)_$C(31)
|
---|
| 66 | Q
|
---|
| 67 | ;
|
---|
| 68 | UNREG(BSDXY,BSDXEVENT,BSDXIP,BSDXPORT) ;EP
|
---|
| 69 | ;RPC Called by client to Unregister client's interest in BSDXEVENT
|
---|
| 70 | ;Returns RECORDSET with field ERRORID.
|
---|
| 71 | ;If everything ok then ERRORID = 0;
|
---|
| 72 | ;
|
---|
| 73 | N BSDXI
|
---|
| 74 | S BSDXI=0
|
---|
| 75 | S X="REGET^BSDX23",@^%ZOSF("TRAP")
|
---|
| 76 | S BSDXY="^BSDXTMP("_$J_")"
|
---|
| 77 | S ^BSDXTMP($J,0)="I00020ERRORID"_$C(30)
|
---|
| 78 | I '+BSDXPORT D REGERR(BSDXI,1) Q
|
---|
| 79 | I BSDXIP="" D REGERR(BSDXI,2) Q
|
---|
| 80 | K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)
|
---|
| 81 | ;
|
---|
| 82 | S BSDXI=BSDXI+1
|
---|
| 83 | S ^BSDXTMP($J,BSDXI)="0"_$C(30)_$C(31)
|
---|
| 84 | Q
|
---|
| 85 | ;
|
---|
| 86 | RAISEVNT(BSDXY,BSDXEVENT,BSDXPARAM,BSDXSIP,BSDXSPT) ;EP
|
---|
| 87 | ;RPC Called to raise event BSDXEVENT with parameter BSDXPARAM
|
---|
| 88 | ;BSDXSIP and BSDXSPT represent the sender's IP and PORT.
|
---|
| 89 | ;If not null, these will prevent the event from being raised back
|
---|
| 90 | ;to the sender.
|
---|
| 91 | ;Returns a RECORDSET wit the field ERRORID.
|
---|
| 92 | ;If everything ok then ERRORID = 0;
|
---|
| 93 | ;
|
---|
| 94 | N BSDXI
|
---|
| 95 | S BSDXI=0
|
---|
| 96 | S BSDXY="^BSDXTMP("_$J_")"
|
---|
| 97 | S ^BSDXTMP($J,0)="I00020ERRORID"_$C(30)
|
---|
| 98 | S X="REGET^BSDX23",@^%ZOSF("TRAP")
|
---|
| 99 | ;
|
---|
| 100 | D EVENT(BSDXEVENT,BSDXPARAM,BSDXSIP,BSDXSPT)
|
---|
| 101 | ;
|
---|
| 102 | S BSDXI=BSDXI+1
|
---|
| 103 | S ^BSDXTMP($J,BSDXI)="0"_$C(30)_$C(31)
|
---|
| 104 | Q
|
---|