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

XUSC1.m

Go to the documentation of this file.
  1. XUSC1 ;SFISC/RWF - Interface to Server services. ;10/09/2002 16:53
  1. ;;8.0;KERNEL;**283**;Jul 10, 1995
  1. ;XUSC("STAT") is used to pass subroutine status around.
  1. ;The entry points EN, OPEN, DATA, CLOSE are supported ref.
  1. ;Calls a server service on a port depending on service.
  1. ;Service:port; "ECHO":10250, "CRC32":10255, "SHA1":10260, "DSIG":10265,1:23)
  1. ;Return 0 = OK, else -1^msg
  1. EN(XUSC3,XUSC1,XUSC2) ;
  1. ;XUSC3 is the service we want.
  1. ;XUSC1 input data array
  1. ;XUSC2 return data array.
  1. N %,R,XUSC ;XUSC holds data not passed as a parameter.
  1. I "DSIG/ECHO/SHA1/DES/CRC32/CRL /"'[XUSC3 S R="-1^Bad service" G EXIT
  1. D SAVDEV^%ZISUTL("XUSC-HOME"),IP
  1. I $G(XUSC("IP"))="" S R="-1^Server not defined" G EXIT
  1. S R=$$EN^XUSC1C(XUSC1,XUSC2,$G(XUSC3,"MPI"))
  1. EXIT D USE^%ZISUTL("XUSC-HOME"),RMDEV^%ZISUTL("XUSC-HOME")
  1. Q R
  1. ;
  1. OPEN(XUSCITE) ;Open Connection, Setup
  1. K XUSC N R
  1. D IP(XUSCITE),SAVDEV^%ZISUTL("XUSC-HOME")
  1. I $G(XUSC("IP"))="" Q "-1^Bad site"
  1. D SETUP^XUSC1C S XUSC("HOME")=IO
  1. N $ESTACK,$ETRAP S $ETRAP="D ERROR^XUSC1C"
  1. D OPEN^XUSC1C I 'XUSC("STAT") D SAVDEV^%ZISUTL("XUSC-IP") U IO D HELO^XUSC1C
  1. D USE^%ZISUTL("XUSC-HOME")
  1. Q $S('XUSC("STAT"):0,1:XUSC("STAT"))
  1. ;
  1. DATA(INPUT,OUTPUT,TYPE) ;Pass Data, Get Responce
  1. S XUSC("STAT")=0 D USE^%ZISUTL("XUSC-IP")
  1. D DATA^XUSC1C G:XUSC("STAT") ERR
  1. D TURN^XUSC1C G:XUSC("STAT") ERR
  1. D GET^XUSC1C G:XUSC("STAT") ERR
  1. D USE^%ZISUTL("XUSC-HOME")
  1. Q 0
  1. ;
  1. CLOSE() ;Close connection
  1. D USE^%ZISUTL("XUSC-IP"),QUIT^XUSC1C,USE^%ZISUTL("XUSC-HOME")
  1. D RMDEV^%ZISUTL("XUSC-IP"),RMDEV^%ZISUTL("XUSC-HOME")
  1. K XUSC Q 0
  1. ;
  1. ERR ;Report an error
  1. D TRACE^XUSC1C("ERROR "_XUSC("STAT"))
  1. D QUIT^XUSC1C,USE^%ZISUTL("XUSC-HOME")
  1. Q XUSC("STAT")
  1. ;
  1. IP ;Lookup name pass back parameters in XUSC
  1. N %,XUSCY,XUSCE
  1. S %=$P(XUSC3," ") D
  1. . I $L($T(@%)) D @% Q
  1. . D ASK Q
  1. Q
  1. ;
  1. DSIG S XUSC("IP")=$P($G(^XTV(8989.3,1,"IP1")),"^",1)
  1. S XUSC("SOCK")=10265
  1. Q
  1. CRL S XUSC("IP")=$P($G(^XTV(8989.3,1,"IP1")),"^",1)
  1. S XUSC("SOCK")=10270
  1. Q
  1. SHA1 S XUSC("IP")=$P($G(^XTV(8989.3,1,"IP1")),"^",1)
  1. S XUSC("SOCK")=10260
  1. Q
  1. ASK ; ASK USER FOR IP AND PORT
  1. S XUSC("IP")="",XUSC("SOCK")=""
  1. R !,"IP Address to use: ",%:DTIME Q:"^"[% S XUSC("IP")=%
  1. R !," Port TO use: ",%:DTIME Q:"^"[% S XUSC("SOCK")=%
  1. Q
  1. ;
  1. NOOP() ;
  1. S XUSC("STAT")=0 D USE^%ZISUTL("XUSC-IP")
  1. S XUSC("OK")=$$POST^XUSC1C("NOOP")
  1. D USE^%ZISUTL("XUSC-HOME")
  1. Q XUSC("OK")