FT_TTSSTAT

FT_TTSSTAT()
 Verify if TTS transaction has been written to disk

 Syntax

    FT_TTSSTAT( <nTransNumber> ) -> nResult

 Arguments

   <nTransNumber> is the transaction number, returned from FT_TTSEND().

 Returns

     0 - Success, transaction written to disk
   255 - Transaction not yet written to disk

 Description

   For further information on NetWare's Transaction Tracking System (TTS),
   consult Novell's documentation.

 Examples

   nResult := FT_TTSSTAT()
   DO CASE
      CASE nResult == 0
         ? "Transaction wrttten to disk"
      CASE nResult == 255
         ? "Transaction not yet written to disk"
      OTHERWISE
         ? "Unknown result code"
   ENDCASE

 Source: NWTTS5.ASM

 Author: James R. Zack

See Also: FT_TTSABORT() FT_TTSAVAIL() FT_TTSBEGIN() FT_TTSEND()

FT_TTSEND

FT_TTSEND()
 End explicit or implicit transaction under NetWare's TTS

 Syntax

     FT_TTSEND() -> nResult

 Arguments

    None

 Returns

        0 - Transaction tracking finished (Success)
      253 - Transaction tracking disabled
      254 - Transaction ended, records locked
      255 - No explicit transactions active
    > 255 - Transaction number

 Description

   For further information on NetWare's Transaction Tracking System (TTS),
   consult your NetWare manuals.

 Examples

   nResult := FT_TTSEND()
   DO CASE
      CASE nResult == 0
         ? "Transaction ended"
      CASE nResult == 253
         ? "Transaction tracking disabled"
      CASE nResult == 254
         ? "Transaction ended, records locked"
      CASE nResult == 255
         ? "No explicit transactions active"
      OTHERWISE
         ? "Transaction number " + Ltrim(Str(nResult))
   ENDCASE

 Source: NWTTS4.ASM

 Author: James R. Zack

See Also: FT_TTSABORT() FT_TTSAVAIL() FT_TTSBEGIN() FT_TTSSTAT()

FT_TTSBEGIN

FT_TTSBEGIN()
 Begin explicit transaction under NetWare's TTS

 Syntax

     FT_TTSBEGIN() -> nResult

 Arguments

    None

 Returns

      0 - Success (transaction begun)
    150 - Out of dynamic workspace (not begun)
    254 - Implicit Transaction already active
             (active implicit transaction now converted to
             explicit transaction)
    255 - Explicit transaction already active
             (existing explicit transaction continues normally)

 Description

   See your NetWare documentation for further information about the
   Transaction Tracking System (TTS).

 Examples

   nResult := FT_TTSBEGIN()
   DO CASE
      CASE nResult == 0
         ? "Transaction begun"
      CASE nResult == 150
         ? "Out of dynamic workspace, transaction not begun"
      CASE nResult == 254
         ? "Implicit transaction already active"
      CASE nResult == 255
         ? "Explicit transaction already active"
      OTHERWISE
         ? "Unknown result"
   ENDCASE

 Source: NWTTS3.ASM

 Author: James R. Zack

See Also: FT_TTSABORT() FT_TTSAVAIL() FT_TTSEND() FT_TTSSTAT()

FT_TTSAVAIL

FT_TTSAVAIL()
 Check whether default Novell file server supports TTS

 Syntax

     FT_TTSAVAIL() -> nResult

 Arguments

    None

 Returns

       0 - TTS unavailable or not supported.
       1 - TTS is installed and available.
     253 - TTS is disabled.

 Description

   This routine is used to check the default NetWare file server for TTS
   availability.  You must have Novell NetWare SFT Level II or above to
   use these functions.  Using these functions on a non SFT II file server
   will return unsuccessful values.  You must have TTS installed on your
   file server.

   This routine was designed and written for Novell Advanced NetWare 2.15
   SFT Level II and Novell NetWare 386 v 3.0 and above.

   This source code was written for Microsoft Macro Assembler v5.1.

 Examples

   IF FT_TTSAVAIL() == 1   // If TTS is available
     FT_TTSBEGIN()         // Begin transaction
   ENDIF

 Source: NWTTS1.ASM

 Author: James R. Zack

See Also: FT_TTSABORT() FT_TTSBEGIN() FT_TTSEND() FT_TTSSTAT()

FT_TTSABORT

FT_TTSABORT()
 Abort explicit and implicit NetWare TTS transactions

 Syntax

     FT_TTSABORT() -> nResult

 Arguments

    None

 Returns

      0 - Abort Successful (backout completed)
    253 - Transaction Tracking disabled (no backout performed)
    254 - Transaction ended, records locked (No backout performed)
    255 - No explicit transactions active

 Description

   Consult your NetWare documentation for details on the NetWare
   Transaction Tracking System.

 Examples

   nResult := FT_TTSABORT()
   DO CASE
      CASE nResult == 0
         ? "TTS aborted"
      CASE nResult == 253
         ? "Transction tracking, no backout performed"
      CASE nResult == 254
         ? "Transaction ended, records locked, no backout performed"
      CASE nResult == 255
         ? "No transactions active"
      OTHERWISE
         ? "Unknown result"
   ENDCASE

 Source: NWTTS2.ASM

 Author: James R. Zack

See Also: FT_TTSAVAIL() FT_TTSBEGIN() FT_TTSEND() FT_TTSSTAT()

FT_PFLUSH

FT_PFLUSH()
 Flush a NetWare capture buffer

 Syntax

     FT_PFLUSH( [ <nLPTPortNumber> ] ) -> NIL

 Arguments

    <nLPTPortNumber> is the captured LPT port number to flush.  If the
    parameter is omitted, the default port or LPT1: is used.

 Returns

    NIL

 Description

   This routine is used to force a Novell NetWare capture buffer to print
   it's contents.  This is useful for printing reports with a filter set
   and you don't know how long it will be between print statements.  With
   a FT_PFLUSH() function at the end of any printing, you can have the
   timeout value for any capture set to 0 (zero).

   This routine was designed and written for Advanced NetWare 286 v 2.0 or
   NetWare 386 v 3.0 or better.  It has been tested on Advanced NetWare 286
   v 2.15 rev A & C, NetWare 386 v 3.0.

   This source code was written for Microsoft Macro Assembler v5.1.

 Examples

   (in DOS)
   F:>CAPTURE S=ServerName Q=PrintQueueName TI=0 L=1

   (in your Clipper application)
   SET FILTER TO Left( FONELIST->PHONENUM, 3 ) == "415"
   GO TOP
   SET PRINT ON
   DO WHILE .NOT. Eof()
     ? fonelist->lastname...
     SKIP
   ENDDO
   FT_PFLUSH(1)     && I could just say FT_PFLUSH() here as well.

 Source: FLUSHCAP.ASM

 Author: James R. Zack

FT_NWUID

FT_NWUID()
 Return the current Novell NetWare User ID

 Syntax

      FT_NWUID( [ <nConnection> ] ) -> cUid

 Arguments

     <nConnection> is a connection number, or logical station number,
     to find a userid for.  Under NetWare 286, this number can be from
     1 to 100.  Under NetWare 386, 1-250.  If not supplied, FT_NWUID()
     defaults to the current connection (i.e., the connection running
     the application).

 Returns

     A string containing the userid, or "login name."
     The maximum length of this string, as defined by current
     versions of Novell NetWare, is 48 characters.

 Description

     FT_NWUID() returns the current NetWare userid, or "login
     name."  This is useful for implementing security or audit
     trail procedures within your programs.

     There is no simple way a user can "fool" this function into
     retrieving an incorrect value, provided a NetWare shell is loaded.

     This function requires FT_INT86() and FT_NWLSTAT()

     This function does NOT test for the existence of the NetWare shell.
     The behavior is undefined if no shell is loaded. You'll usually get
     garbage.  This function has not been tested on NetWare 386.

 Examples

     QOut( "I am: " + FT_NWUID() )

     FOR x := 1 TO 100
       cUid := FT_NWUID( x )
       IF .NOT Empty( cUid )
         QOut( Str( x, 3 ) + Space(3) + cUid )
       ENDIF
     NEXT

 Source: NWUID.PRG

 Author: Glenn Scott

 

FT_NWSEMWAIT

FT_NWSEMWAIT()
 Wait on a NetWare semaphore (decrement)

 Syntax

      FT_NWSEMWAIT( <nHandle> [, nTimeout ] ) -> nRc

 Arguments

     <nHandle> is the semaphore handle, returned from a previous call
     to FT_NWSEMOPEN().

     <nTimeOut> is an optional parameter telling how long you wish to
     wait on this semaphore.  This is a numeric indicating the number
     of clock ticks (approx 1/18 sec ) to wait.  A zero (the default)
     means "don't wait."

 Returns

     nRc, a numeric, as follows:

           0 - success
         254 - timeout failure
         255 - invalid semaphore handle

 Description

     See the description for the FT_NWSEMOPEN() function.

 Examples

    FT_NWSEMOPEN( "Semaphore Test", nInitVal, @nHandle, @nOpenCnt )

    nRc := FT_NWSEMWAIT( nHandle )
    IF nRc == 254
       QOUT( "All slots for this resource are currently in use" )
       QUIT
    ENDIF

 Source: NWSEM.PRG

 Author: Glenn Scott

See Also: FT_NWSEMOPEN() FT_NWSEMEX() FT_NWSEMSIG() FT_NWSEMCLOSE() FT_NWSEMLOCK()



FT_NWSEMUNLOCK

FT_NWSEMUNLOCK()
 "Unlock" a semaphore locked by FT_NWSEMLOCK()

 Syntax

      FT_NWSEMUNLOCK( <nHandle> ) -> lRet

 Arguments

     <nHandle> is the semaphore handle returned from FT_NWSEMLOCK()

 Returns

     lRet == .t. if you successfully unlock the semaphore, .f. if
     you don't.  If this call fails, it could be that you're passing
     an invalid semaphore handle.

 Description

     This call unlocks a semaphore prevsiously locked via FT_NWSEMLOCK().
     It is important that you get a valid semaphore handle from
     FT_NWSEMLOCK() before you use this call.  Make sure when you call
     FT_NWSEMLOCK() that you pass a numeric parameter in for the handle
     BY REFERENCE.

 Examples

     LOCAL nHandle := 0
     IF FT_NWSEMLOCK( "k:\apps\error.log", @nHandle )
         // Note, you aren't actually LOCKING this file, you are
         // just locking a semaphore by the same name.  As long as
         // all apps that might be using this file are cooperating
         // with the same kind of semaphore lock, you can effectively
         // control access to the file.
       ELSE
         QOUT("Couldn't lock file.")
       ENDIF
       * Processing, then:
       FT_NWSEMUNLOCK( nHandle )

 Source: NWSEM.PRG

 Author: Glenn Scott

See Also: FT_NWSEMOPEN() FT_NWSEMEX() FT_NWSEMWAIT() FT_NWSEMSIG() FT_NWSEMLOCK()

FT_NWSEMSIG

FT_NWSEMSIG()
 Signal a NetWare semaphore (increment)

 Syntax

      FT_NWSEMSIG( nHandle ) -> nRc

 Arguments

     <nHandle> is the semaphore handle, returned from a previous call
     to FT_NWSEMOPEN().

 Returns

     nRc, a numeric, as follows

          0 - success
          1 - semaphore overflow ( value > 127 )
        255 - invalid semaphore handle

 Description

      Use FT_NWSEMSIG() when your app has finished with the resource
      locked by a semaphore.  This will increase the value (thus
      making a slot available to another app).

      For more information, see the description under FT_NWSEMOPEN().

 Examples

      QOUT( "Signal returns: " + STR( FT_NWSEMSIG( nHandle ) ) )

 Source: NWSEM.PRG

 Author: Glenn Scott

See Also: FT_NWSEMOPEN() FT_NWSEMEX() FT_NWSEMWAIT() FT_NWSEMCLOSE() FT_NWSEMLOCK()