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 | ;
|
---|