| [628] | 1 | XOBUM1 ;; ld,mjk/alb - Foundations Manager ; 07/27/2002  13:00 | 
|---|
|  | 2 | ;;1.5;Foundations;;Sep 09, 2005 | 
|---|
|  | 3 | ;;Foundations Toolbox Release v1.5 [Build: 1.5.0.026] | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | START(XOBPORT) ;-- Entry point to start a single VistALink Listener | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | ;  This procedure will start the VistALink Listener on a specific port.  The port number is optional | 
|---|
|  | 8 | ;  and will be validated if passed to this procedure.  If the port is not passed, the user will be | 
|---|
|  | 9 | ;  prompted for a port number. | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | ;   Input: | 
|---|
|  | 12 | ;     XOBPORT  - Port number for the Listener (optional) | 
|---|
|  | 13 | ; | 
|---|
|  | 14 | ;  Output: | 
|---|
|  | 15 | ;     None | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | NEW XOBTASK,Y,XOBOK | 
|---|
|  | 18 | ; | 
|---|
|  | 19 | ;-- Reset I/O variables | 
|---|
|  | 20 | SET U="^" DO HOME^%ZIS | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | DO | 
|---|
|  | 23 | . ; | 
|---|
|  | 24 | . ;-- Check operating system | 
|---|
|  | 25 | . IF '$$CHKOS() SET XOBOK=0 QUIT | 
|---|
|  | 26 | . ; | 
|---|
|  | 27 | . ;-- Validate/prompt for port | 
|---|
|  | 28 | . IF '$$VALID($GET(XOBPORT)) SET XOBPORT=$$GETPORT("start") | 
|---|
|  | 29 | . IF 'XOBPORT SET XOBOK=0 QUIT | 
|---|
|  | 30 | . ; | 
|---|
|  | 31 | . ;-- Wait msg to user | 
|---|
|  | 32 | . DO WAIT^DICD WRITE ! | 
|---|
|  | 33 | . ; | 
|---|
|  | 34 | . ;-- Check if Listener is running on port | 
|---|
|  | 35 | . IF '$$LOCK^XOBVTCP(XOBPORT) DO  QUIT | 
|---|
|  | 36 | . . DO EN^DDIOL("VistALink Listener on port "_XOBPORT_" appears to be running already.") | 
|---|
|  | 37 | . . SET XOBOK=0 | 
|---|
|  | 38 | . ; | 
|---|
|  | 39 | . ;-- Lock was successful; unlock and queue the listener to startup | 
|---|
|  | 40 | . DO UNLOCK^XOBVTCP(XOBPORT) | 
|---|
|  | 41 | . DO UPDATE^XOBVTCP(XOBPORT,1) | 
|---|
|  | 42 | . SET XOBOK=$$START^XOBVTCP(XOBPORT) | 
|---|
|  | 43 | . IF 'XOBOK DO | 
|---|
|  | 44 | . . DO UPDATE^XOBVTCP(XOBPORT,5) | 
|---|
|  | 45 | . . DO EN^DDIOL("Unable to start VistALink Listener on port "_XOBPORT_".") | 
|---|
|  | 46 | ; | 
|---|
|  | 47 | QUIT XOBOK | 
|---|
|  | 48 | ; | 
|---|
|  | 49 | ; | 
|---|
|  | 50 | CHKOS() ;-- Check operating system | 
|---|
|  | 51 | ; | 
|---|
|  | 52 | ;  This function will determine which operating system is being used. | 
|---|
|  | 53 | ; | 
|---|
|  | 54 | ;   Input: | 
|---|
|  | 55 | ;     None | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | ;  Output: | 
|---|
|  | 58 | ;     Function value - returns 1 on success, 0 on failure | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | NEW OPERSYS,RESULT | 
|---|
|  | 61 | ; | 
|---|
|  | 62 | SET RESULT=0 | 
|---|
|  | 63 | ; | 
|---|
|  | 64 | ;-- Get operating system | 
|---|
|  | 65 | SET OPERSYS=$$GETOS^XOBVTCP() | 
|---|
|  | 66 | ; | 
|---|
|  | 67 | DO | 
|---|
|  | 68 | . IF OPERSYS="OpenM-NT" DO  QUIT | 
|---|
|  | 69 | .. DO EN^DDIOL("Starting VistALink Listener...") | 
|---|
|  | 70 | .. SET RESULT=1 | 
|---|
|  | 71 | . ; | 
|---|
|  | 72 | . IF OPERSYS["DSM" DO EN^DDIOL("Use the TCPIP utility in VMS to enable the VistALink Listener.") QUIT | 
|---|
|  | 73 | . ; | 
|---|
|  | 74 | . ;-- All other operating systems | 
|---|
|  | 75 | . DO EN^DDIOL("Starting the VistALink Listener is not yet supported for "_OPERSYS_".") QUIT | 
|---|
|  | 76 | . ; | 
|---|
|  | 77 | QUIT RESULT | 
|---|
|  | 78 | ; | 
|---|
|  | 79 | ; | 
|---|
|  | 80 | VALID(XOBPORT) ;-- Validate port | 
|---|
|  | 81 | ; | 
|---|
|  | 82 | ;  This function will validate a port number passed in. | 
|---|
|  | 83 | ; | 
|---|
|  | 84 | ;   Input: | 
|---|
|  | 85 | ;     XOBPORT  - Port number for the Listener (Optional) | 
|---|
|  | 86 | ; | 
|---|
|  | 87 | ;  Output: | 
|---|
|  | 88 | ;     Function value - returns 1 if valid, 0 otherwise | 
|---|
|  | 89 | ; | 
|---|
|  | 90 | NEW RESULT | 
|---|
|  | 91 | ; | 
|---|
|  | 92 | SET XOBPORT=+$GET(XOBPORT) | 
|---|
|  | 93 | SET RESULT=0 | 
|---|
|  | 94 | ; | 
|---|
|  | 95 | ;-- Check if port is not defined or invalid | 
|---|
|  | 96 | DO  ; Drops out of block on failure | 
|---|
|  | 97 | . QUIT:XOBPORT=0 | 
|---|
|  | 98 | . QUIT:(XOBPORT?.AP) | 
|---|
|  | 99 | . QUIT:XOBPORT<5000!(XOBPORT>65535) | 
|---|
|  | 100 | . SET RESULT=1 | 
|---|
|  | 101 | QUIT RESULT | 
|---|
|  | 102 | ; | 
|---|
|  | 103 | ; | 
|---|
|  | 104 | GETPORT(XOBST) ;-- Prompt user for port number | 
|---|
|  | 105 | ; | 
|---|
|  | 106 | ;  This function will prompt the user for a valid port number. | 
|---|
|  | 107 | ; | 
|---|
|  | 108 | ;   Input: | 
|---|
|  | 109 | ;     XOBST - start = start Listener | 
|---|
|  | 110 | ;             stop  = stop Listener | 
|---|
|  | 111 | ; | 
|---|
|  | 112 | ;  Output: | 
|---|
|  | 113 | ;     Function value - returns port # or zero | 
|---|
|  | 114 | ; | 
|---|
|  | 115 | NEW DIR,DIRUT,PORT | 
|---|
|  | 116 | SET XOBST=$GET(XOBST) | 
|---|
|  | 117 | ; | 
|---|
|  | 118 | SET DIR(0)="NA^5000:65535" | 
|---|
|  | 119 | SET DIR("A")="Enter Port: " | 
|---|
|  | 120 | SET DIR("B")=8000  ; Default port is 8000 | 
|---|
|  | 121 | SET DIR("?")="Choose a numeric port to "_XOBST_" the VistALink Listener on in the range of 5000-65535." | 
|---|
|  | 122 | DO ^DIR KILL DIR | 
|---|
|  | 123 | IF $DATA(DIRUT) DO | 
|---|
|  | 124 | . DO EN^DDIOL("Port not specified.  VistALink Listener not "_$SELECT(XOBST="start":"started",1:"stopped")_".") | 
|---|
|  | 125 | . SET PORT=0 | 
|---|
|  | 126 | ELSE  SET PORT=+$GET(Y) | 
|---|
|  | 127 | ; | 
|---|
|  | 128 | QUIT PORT | 
|---|
|  | 129 | ; | 
|---|
|  | 130 | ; | 
|---|
|  | 131 | BOX() ; -- start this BOX-VOl default configuration | 
|---|
|  | 132 | NEW XOBOX | 
|---|
|  | 133 | IF $$CHKOS^XOBUM1() DO | 
|---|
|  | 134 | . SET XOBOK=1 | 
|---|
|  | 135 | . DO WAIT^DICD WRITE ! | 
|---|
|  | 136 | . DO STARTCFG^XOBVTCP($$GETCFG^XOBVTCP()) | 
|---|
|  | 137 | ELSE  DO | 
|---|
|  | 138 | . SET XOBOK=0 | 
|---|
|  | 139 | QUIT XOBOK | 
|---|
|  | 140 | ; | 
|---|
|  | 141 | ; | 
|---|
|  | 142 | STOP(LOGDA) ; -- stop a listener | 
|---|
|  | 143 | NEW Y,X,LOG0,XOBBOX,XOBPORT,XONCFG,XOBSTAT,XOBOK | 
|---|
|  | 144 | SET XOBOK=0 | 
|---|
|  | 145 | ; | 
|---|
|  | 146 | SET LOG0=$GET(^XOB(18.04,LOGDA,0)) | 
|---|
|  | 147 | SET XOBBOX=$PIECE(LOG0,U) | 
|---|
|  | 148 | SET XOBPORT=$PIECE(LOG0,U,2) | 
|---|
|  | 149 | SET XOBSTAT=$PIECE(LOG0,U,3) | 
|---|
|  | 150 | SET XOBCFG=$PIECE(LOG0,U,6) | 
|---|
|  | 151 | ; | 
|---|
|  | 152 | ; -- must be valid entyr with a running status | 
|---|
|  | 153 | IF XOBPORT,XOBSTAT=2 DO | 
|---|
|  | 154 | . DO UPDLOG^XOBVTCP(LOGDA,XOBPORT,3,XOBCFG) | 
|---|
|  | 155 | . SET XOBOK=1 | 
|---|
|  | 156 | ELSE  DO | 
|---|
|  | 157 | . SET XOBOK=0_U_"Listener is not running!" | 
|---|
|  | 158 | ; | 
|---|
|  | 159 | QUIT XOBOK | 
|---|
|  | 160 | ; | 
|---|
|  | 161 | PARMS() ; -- maintain site parameters | 
|---|
|  | 162 | NEW DIC,X,Y,DR,DA,DIE,XOBOK | 
|---|
|  | 163 | SET XOBOK=0 | 
|---|
|  | 164 | ; | 
|---|
|  | 165 | IF $GET(^XOB(18.01,1,0))["" DO | 
|---|
|  | 166 | . SET DA=1,DR="[XOBU SITE PARAMETERS]",DIE="^XOB(18.01," DO ^DIE | 
|---|
|  | 167 | . SET XOBOK=1 | 
|---|
|  | 168 | ELSE  DO | 
|---|
|  | 169 | . SET XOBOK=0_U_"Error: Site parameter file not initialized." | 
|---|
|  | 170 | ; | 
|---|
|  | 171 | QUIT XOBOK | 
|---|
|  | 172 | ; | 
|---|
|  | 173 | CFG() ; -- listener configuration edit | 
|---|
|  | 174 | NEW DIC,X,Y,DR,DA,DIE,XOBDONE,XOBOK | 
|---|
|  | 175 | SET XOBOK=0 | 
|---|
|  | 176 | ; | 
|---|
|  | 177 | SET XOBDONE=0 | 
|---|
|  | 178 | ; | 
|---|
|  | 179 | FOR   DO  QUIT:XOBDONE | 
|---|
|  | 180 | . WRITE ! | 
|---|
|  | 181 | . SET DIC="^XOB(18.03,",DIC(0)="AEMLQ" DO ^DIC | 
|---|
|  | 182 | . IF Y<1 SET XOBDONE=1 QUIT | 
|---|
|  | 183 | . SET DA=+Y,DR="[XOBV LISTENER CONFIG EDIT]",DIE="^XOB(18.03," DO ^DIE | 
|---|
|  | 184 | SET XOBOK=1 | 
|---|
|  | 185 | ; | 
|---|
|  | 186 | QUIT XOBOK | 
|---|
|  | 187 | ; | 
|---|
|  | 188 | CP() ; -- add a connector proxy | 
|---|
|  | 189 | NEW XOBOK | 
|---|
|  | 190 | SET XOBOK=0 | 
|---|
|  | 191 | DO CONT^XUSAP | 
|---|
|  | 192 | SET XOBOK=1 | 
|---|
|  | 193 | QUIT XOBOK | 
|---|
|  | 194 | ; | 
|---|