174 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* d4inline.c   (c)Copyright Sequiter Software Inc., 1988-1996.  All rights reserved. */
 | |
| 
 | |
| #include "d4all.h"
 | |
| #ifndef S4UNIX
 | |
|    #ifdef __TURBOC__
 | |
|       #pragma hdrstop
 | |
|    #endif  /* __TUROBC__ */
 | |
| #endif  /* S4UNIX */
 | |
| 
 | |
| #ifdef S4SERVER
 | |
| #ifndef S4SINGLE
 | |
| int S4FUNCTION code4unlockAuto( CODE4 *c4 )
 | |
| {
 | |
|    int rc ;
 | |
| 
 | |
|    rc = code4trans( c4 )->unlockAuto ;
 | |
|    #ifndef S4OFF_WRITE
 | |
|       #ifndef S4OFF_TRAN
 | |
|          if ( rc != 0 )
 | |
|          {
 | |
|             if ( code4tranStatus( c4 ) == r4rollback )
 | |
|                return 0 ;
 | |
|             if ( code4transEnabled( c4 ) )
 | |
|                if ( code4tranStatus( c4 ) == r4active )
 | |
|                   return 0 ;
 | |
|          }
 | |
|       #endif
 | |
|    #endif
 | |
| 
 | |
|    return rc ;
 | |
| }
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #ifndef S4INLINE
 | |
| 
 | |
| /*
 | |
| #ifndef S4SINGLE
 | |
| int trans4unlockAuto( TRAN4 *t4 )
 | |
| {
 | |
|    return t4->unlockAuto ;
 | |
| }
 | |
| 
 | |
| void trans4unlockAutoSet( TRAN4 *t4, int val )
 | |
| {
 | |
|    t4->unlockAuto = val ;
 | |
| }
 | |
| #endif
 | |
| */
 | |
| 
 | |
| #ifndef S4SERVER
 | |
| #ifndef S4SINGLE
 | |
| int code4unlockAutoSave( CODE4 *c4 )
 | |
| {
 | |
|    return c4->c4trans.trans.savedUnlockAuto ;
 | |
| }
 | |
| 
 | |
| int S4FUNCTION code4unlockAuto( CODE4 *c4 )
 | |
| {
 | |
|    return c4->c4trans.trans.unlockAuto ;
 | |
| }
 | |
| 
 | |
| S4EXPORT void S4FUNCTION code4unlockAutoSet( CODE4 *c4, int val )
 | |
| {
 | |
|    c4->c4trans.trans.unlockAuto = val ;
 | |
| }
 | |
| #endif  /* S4SINGLE */
 | |
| 
 | |
| #ifndef S4OFF_WRITE
 | |
| #ifndef S4OFF_TRAN
 | |
| int S4FUNCTION code4tranStatus( CODE4 *c4 )
 | |
| {
 | |
|    return c4->c4trans.trans.currentTranStatus ;
 | |
| }
 | |
| 
 | |
| S4EXPORT int S4FUNCTION code4tranStatusSet( CODE4 *c4, const int val )
 | |
| {
 | |
|    return c4->c4trans.trans.currentTranStatus = val ;
 | |
| }
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #endif  /*  S4SERVER */
 | |
| 
 | |
| #ifdef S4SERVER
 | |
| #ifndef S4SINGLE
 | |
| int code4unlockAutoSave( CODE4 *c4 )
 | |
| {
 | |
|    return c4->currentClient->trans.savedUnlockAuto ;
 | |
| }
 | |
| 
 | |
| void S4FUNCTION code4unlockAutoSet( CODE4 *c4, int val )
 | |
| {
 | |
|    c4->currentClient->trans.unlockAuto = val ;
 | |
| }
 | |
| #endif  /* S4SINGLE */
 | |
| 
 | |
| #ifndef S4OFF_WRITE
 | |
| #ifndef S4OFF_TRAN
 | |
| int S4FUNCTION code4tranStatus( CODE4 *c4 )
 | |
| {
 | |
|    return c4->currentClient->trans.currentTranStatus ;
 | |
| }
 | |
| 
 | |
| int S4FUNCTION code4tranStatusSet( CODE4 *c4, const int val )
 | |
| {
 | |
|    return c4->currentClient->trans.currentTranStatus = val ;
 | |
| }
 | |
| 
 | |
| int code4transEnabled( CODE4 *c4 )
 | |
| {
 | |
|    #ifdef S4CLIENT
 | |
|       return ( c4->currentClient->trans.c4trans->enabled ) ;
 | |
|    #else
 | |
|       return ( c4->currentClient->trans.c4trans->enabled && code4tranStatus( c4 ) != r4rollback && code4tranStatus( c4 ) != r4off ) ;
 | |
|    #endif
 | |
| }
 | |
| #endif  /* S4OFF_TRAN */
 | |
| #endif  /* S4OFF_WRITE */
 | |
| 
 | |
| TRAN4 *code4trans( CODE4 *c4 )
 | |
| {
 | |
|    return &c4->currentClient->trans ;
 | |
| }
 | |
| #else
 | |
| #ifndef S4OFF_TRAN
 | |
| int code4transEnabled( CODE4 *c4 )
 | |
| {
 | |
|    #ifdef S4CLIENT
 | |
|       return c4->c4trans.enabled ;
 | |
|    #else
 | |
|       return ( c4->c4trans.enabled && code4tranStatus( c4 ) != r4rollback && code4tranStatus( c4 ) != r4off ) ;
 | |
|    #endif
 | |
| }
 | |
| #endif  /* S4OFF_TRAN */
 | |
| 
 | |
| TRAN4 *code4trans( CODE4 *c4 )
 | |
| {
 | |
|    return &c4->c4trans.trans ;
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #ifndef S4CLIENT
 | |
| #ifndef S4OFF_TRAN
 | |
| unsigned short int tran4entryLen( LOG4HEADER *header )
 | |
| {
 | |
|    return sizeof( LOG4HEADER ) + header->dataLen + sizeof( TRAN4ENTRY_LEN ) ;
 | |
| }
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| int tran4dataListSet( TRAN4 *t4, LIST4 *list )
 | |
| {
 | |
|    #ifdef E4PARM_LOW
 | |
|       if ( t4 == 0 )
 | |
|          return error4( 0, e4parm_null, E93839 ) ;
 | |
|    #endif
 | |
|    t4->dataList = list ;
 | |
|    return 0 ;
 | |
| }
 | |
| 
 | |
| LIST4 *S4FUNCTION tran4dataList( TRAN4 *t4 )
 | |
| {
 | |
|    #ifdef E4PARM_LOW
 | |
|       if ( t4 == 0 )
 | |
|       {
 | |
|          error4( 0, e4parm_null, E93838 ) ;
 | |
|          return 0 ;
 | |
|       }
 | |
|    #endif
 | |
|    return t4->dataList ;
 | |
| }
 | |
| #endif   /* S4INLINE */
 |