Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BSDX23

BSDX23.m

Go to the documentation of this file.
  1. BSDX23 ; IHS/OIT/HMW/MSC/SAT - WINDOWS SCHEDULING RPCS ;
  1. ;;3.0;IHS WINDOWS SCHEDULING;;DEC 09, 2010
  1. ;
  1. ;
  1. EVENT(BSDXEVENT,BSDXPARAM,BSDXSIP,BSDXSPT) ;EP
  1. ;Raise event to interested clients
  1. ;Clients are listed in ^BSDXTMP("EVENT",EVENT_NAME,IP,PORT)
  1. ;BSDXSIP and BSDXSPT represent the sender's IP and PORT.
  1. ;The event will not be raised back to the sender if these are non-null
  1. ;
  1. Q:'$D(^BSDXTMP("EVENT",BSDXEVENT))
  1. S BSDXIP=0 F S BSDXIP=$O(^BSDXTMP("EVENT",BSDXEVENT,BSDXIP)) Q:BSDXIP="" D
  1. . S BSDXPORT=0 F S BSDXPORT=$O(^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)) Q:'+BSDXPORT D
  1. . . I BSDXIP=BSDXSIP Q ;,BSDXPORT=BSDXSPT Q
  1. . . D CALL^%ZISTCP(BSDXIP,BSDXPORT,5)
  1. . . I POP K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT) Q
  1. . . ;U IO R X#3:5
  1. . . I X'="ACK" K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT) Q
  1. . . S BSDXPARAM=$S(BSDXPARAM="":"",1:U_BSDXPARAM)
  1. . . U IO W BSDXEVENT,BSDXPARAM,!
  1. . . D ^%ZISC
  1. . . Q
  1. . Q
  1. Q
  1. ;
  1. EVERR(BSDXEVENT,BSDXIP,BSDXPORT) ;
  1. ;
  1. Q:$G(BSDXEVENT)=""
  1. Q:$G(BSDXIP)=""
  1. Q:$G(BSDXIP)=""
  1. K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)
  1. Q
  1. ;
  1. REGET ;EP
  1. ;Error trap from REGEVNT
  1. ;
  1. I '$D(BSDXI) N BSDXI S BSDXI=999
  1. S BSDXI=BSDXI+1
  1. D REGERR(BSDXI,99)
  1. Q
  1. ;
  1. REGERR(BSDXI,BSDXERID) ;Error processing
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)=BSDXERID_$C(30)
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)=$C(31)
  1. Q
  1. ;
  1. ;
  1. REGEVNT(BSDXY,BSDXEVENT,BSDXIP,BSDXPORT) ;EP
  1. ;RPC Called by client to inform RPMS server of client's interest in BSDXEVENT
  1. ;Returns RECORDSET with field ERRORID.
  1. ;If everything ok then ERRORID = 0;
  1. ;
  1. N BSDXI
  1. S BSDXI=0
  1. S X="REGET^BSDX23",@^%ZOSF("TRAP")
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. S ^BSDXTMP($J,0)="I00020ERRORID"_$C(30)
  1. I '+BSDXPORT D REGERR(BSDXI,1) Q
  1. I BSDXIP="" D REGERR(BSDXI,2) Q
  1. S ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)=""
  1. ;
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)="0"_$C(30)_$C(31)
  1. Q
  1. ;
  1. UNREG(BSDXY,BSDXEVENT,BSDXIP,BSDXPORT) ;EP
  1. ;RPC Called by client to Unregister client's interest in BSDXEVENT
  1. ;Returns RECORDSET with field ERRORID.
  1. ;If everything ok then ERRORID = 0;
  1. ;
  1. N BSDXI
  1. S BSDXI=0
  1. S X="REGET^BSDX23",@^%ZOSF("TRAP")
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. S ^BSDXTMP($J,0)="I00020ERRORID"_$C(30)
  1. I '+BSDXPORT D REGERR(BSDXI,1) Q
  1. I BSDXIP="" D REGERR(BSDXI,2) Q
  1. K ^BSDXTMP("EVENT",BSDXEVENT,BSDXIP,BSDXPORT)
  1. ;
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)="0"_$C(30)_$C(31)
  1. Q
  1. ;
  1. RAISEVNT(BSDXY,BSDXEVENT,BSDXPARAM,BSDXSIP,BSDXSPT) ;EP
  1. ;RPC Called to raise event BSDXEVENT with parameter BSDXPARAM
  1. ;BSDXSIP and BSDXSPT represent the sender's IP and PORT.
  1. ;If not null, these will prevent the event from being raised back
  1. ;to the sender.
  1. ;Returns a RECORDSET wit the field ERRORID.
  1. ;If everything ok then ERRORID = 0;
  1. ;
  1. N BSDXI
  1. S BSDXI=0
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. S ^BSDXTMP($J,0)="I00020ERRORID"_$C(30)
  1. S X="REGET^BSDX23",@^%ZOSF("TRAP")
  1. ;
  1. D EVENT(BSDXEVENT,BSDXPARAM,BSDXSIP,BSDXSPT)
  1. ;
  1. S BSDXI=BSDXI+1
  1. S ^BSDXTMP($J,BSDXI)="0"_$C(30)_$C(31)
  1. Q