cANLOCK ;LOCK-functies ;%ANLOCK ; [ 01/04/01 11:31 AM ] G YZ ; T0 ;LOCK-functies; T1 ;Bestand(en); ; T0F ;LOCK-functions; T1F ;Fichier(s); ; T0E ;LOCK-functions; T1E ;File(s); ; ; Input-parameters: LREF =globalreference ; LTIME=time-out argument voor LOCK ; LITEM=omschrijving te locken item ; LACT =te ondernemen actie (0/1/2) ; ; Output: 0=lock failed ; 1=GLOREF is gelockt ; LOCK(LREF,LTIME,LITEM,LACT) ; lock GLOREF / unlock al de rest N LPLUS S LPLUS=0 G 1 ; PLUS(LREF,LTIME,LITEM,LACT) ; lock +GLOREF / rest blijft gelockt N LPLUS S LPLUS=1 G 1 ; ; start 1 S $ZT="TRAP^cAN000" N LZR S LZR=$ZR I $G(LREF)="" G YZ I $G(LTIME)="" S LTIME=2 I $G(LITEM)="" S LITEM=$P($T(@("T1"_QT)),U,2) I $G(LACT)="" S LACT=0 ; ; lock 2 N K,LT,LJOB 21 I 'LPLUS L @LREF:LTIME S LT=$T I LPLUS L +@LREF:LTIME S LT=$T ; ; na de lock 3 I LT G Y I 'LACT G YZ I $ZV["MSM" D ^cANLOCKM ; opbouw variabele LJOB I $ZV'["MSM" D ^cANLOCKC I LACT=2 G 5 ; ; actie=1 (boodschap tonen, [] geven en stoppen) 4 S K=LITEM_LJOB D TXT^cAFA1(250) G YZ ; ; actie=2 (boodschap tonen, wissen en opnieuw) 5 S K=24 I $G(QW) D O^cA612(24,1,1,80,0,0,1,1) S K=1 W /CUP(K,1),@F2," ",@F4,LITEM,LJOB," ",@F5 H LTIME W /CUP(K,1),@F2 I $G(QW) D C^cA612 R K:0 G 21 ; Y D REF Q 1 ; gelockt YZ D REF Q 0 ; lock failed ; REF I $O(@LZR) ; naked reference terugzetten Q ; ZZ ; 05.02.01 - 16 u 23 * V7.84