Man Linux: Main Page and Category List

NAME

       stAbortThis, stThisTransaction - simple transaction handling

SYNOPSIS

       #include <config.h>
       #include <sttk.h>

       void         stAbortThis (int domsg);

       struct stTransactionstThisTransaction;

DESCRIPTION

       stAbortThis  is  part of a simple transaction mechanism on the basis of
       setjmp(3) and longjmp(3). A transacion is started by setting  a  return
       point calling setjmp(3) and may be aborted by calling stAbortThis. This
       outputs  a  short  abort  message,  cleans  up  the   temporary   files
       (stRmRegisteredFiles(3)) and performs a longjmp(3) operation, returning
       to the transaction start point.

       The structure variable stThisTransaction carries information about  the
       current transaction. It has the following fields:
       struct stTransaction {
         char tr_fname[MAXPATHLEN+1];
         int tr_done;
         int tr_seqno;
         int tr_rc;
         jmp_buf tr_env;
       };

       When  setting  the  transaction  return  point by calling setjmp(3) the
       tr_env field must be used as  argument  to  setjmp.  The  name  of  the
       concerned  file should be stored in tr_fname field and the tr_done flag
       should be cleared.  tr_seqno  is  the  serial  number  of  the  current
       transaction  and  must  be  increased  at  the  beginning  of  each new
       transaction. The tr_rc return code can be set to an appropriate  return
       code  when  something went wrong and the transaction was aborted.  When
       not set by the application, tr_rc will be set nun null  by  stAbortThis
       on  abortion  of  the  transaction.  On  successful completion, tr_done
       should be set TRUE.

SEE ALSO

       stRmRegisteredFiles(3), setjmp(3), longjmp(3).