campo-sirio/cb/source/c4trans.h
alex af15e0698b Codebase
git-svn-id: svn://10.65.10.50/trunk@4679 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-06-16 13:01:08 +00:00

190 lines
8.0 KiB
C
Executable File

/* c4trans.h (c)Copyright Sequiter Software Inc., 1988-1996. All rights reserved. */
#ifndef S4OFF_TRAN
#define TRAN4ENTRY_LEN unsigned long
#endif /* S4OFF_TRAN */
#ifdef S4SERVER
#ifndef S4OFF_TRAN
#ifndef S4OFF_WRITE
#define S4TRAN_DEFINED
#ifdef S4INLINE
#define code4tranStart( c4 ) ( tran4lowStart( &((c4)->currentClient->trans), connection4id( (c4)->currentClient->connection ), 0 ) )
#define code4tranStartSingle( c4 ) ( tran4lowStart( &((c4)->currentClient->trans), connection4id( (c4)->currentClient->connection ), 0 ) )
#define code4tranCommit( c4 ) ( tran4lowCommit( &((c4)->currentClient->trans), connection4id( (c4)->currentClient->connection ), 1, 1 ) )
#define code4tranCommitSingle( c4 ) ( tran4lowCommit( &((c4)->currentClient->trans), connection4id( (c4)->currentClient->connection ), 1, 0 ) )
#define code4tranRollback( c4 ) ( tran4lowRollback( &((c4)->currentClient->trans), connection4id( (c4)->currentClient->connection ), 1 ) )
#define code4tranRollbackSingle( c4 ) ( tran4lowRollback( &((c4)->currentClient->trans), connection4id( (c4)->currentClient->connection ), 0 ) )
#define code4tranStatus( c4 ) ( (c4)->currentClient->trans.currentTranStatus )
#define code4tranStatusSet( c4, val ) ( (c4)->currentClient->trans.currentTranStatus = (val) )
#else
int S4FUNCTION code4tranCommit( CODE4 S4PTR * ) ;
int S4FUNCTION code4tranStart( CODE4 S4PTR * ) ;
int S4FUNCTION code4tranStartSingle( CODE4 S4PTR * ) ;
int S4FUNCTION code4tranRollback( CODE4 S4PTR * ) ;
int S4FUNCTION code4tranStatus( CODE4 * ) ;
int S4FUNCTION code4tranStatusSet( CODE4 *, const int val ) ;
#endif
#endif
#endif
#ifdef S4TRAN_DEFINED
#undef S4TRAN_DEFINED
#else
#define code4tranCommit( c4 ) ( 0 )
#define code4tranStart( c4 ) ( 0 )
#define code4tranRollback( c4 ) ( 0 )
#define code4tranStatus( c4 ) ( r4inactive )
#endif
#else
#ifdef __cplusplus
extern "C" {
#endif
/* exported for utilities */
int S4FUNCTION code4tranInit( CODE4 S4PTR * ) ;
S4EXPORT int S4FUNCTION code4tranCommit( CODE4 S4PTR * ) ;
S4EXPORT int S4FUNCTION code4tranStart( CODE4 S4PTR * ) ;
S4EXPORT int S4FUNCTION code4tranRollback( CODE4 S4PTR * ) ;
#ifdef S4OFF_TRAN
#ifdef S4CLIENT
#define code4tranStatus( c4 ) ( (c4)->c4trans.trans.currentTranStatus )
#else
#define code4tranStatus( c4 ) ( 0 )
#endif
#else
#ifndef S4OFF_WRITE
int S4FUNCTION code4tranStartSingle( CODE4 S4PTR * ) ;
#ifdef S4INLINE
#define code4tranStatus( c4 ) ( (c4)->c4trans.trans.currentTranStatus )
#define code4tranStatusSet( c4, val ) ( (c4)->c4trans.trans.currentTranStatus = (val) )
#else
S4EXPORT int S4FUNCTION code4tranStatusSet( CODE4 *, const int val ) ;
#endif
#endif
#endif
#ifndef S4INLINE
#ifdef S4CLIENT
int code4tranInit2( CODE4 *, const char *, const char * ) ;
void code4tranInitUndo( CODE4 * ) ;
#endif
#endif
#ifdef S4STAND_ALONE
S4EXPORT int S4FUNCTION code4tranInit2( CODE4 S4PTR *, const char S4PTR *, const char S4PTR * ) ;
void code4tranInitUndo( CODE4 * ) ;
#endif
#ifdef __cplusplus
}
#endif
#endif /* S4SERVER */
#ifndef S4OFF_WRITE
#ifndef S4CLIENT
#ifndef S4OFF_TRAN
/* #define TRAN4CREATE 1 Not supported*/
#define TRAN4OPEN 1
#define TRAN4OPEN_TEMP 2
#define TRAN4CLOSE 3
#define TRAN4START 4
/* #define TRAN4COMMIT 5 Not supported*/
#define TRAN4COMPLETE 6
#define TRAN4ROLLBACK 7
#define TRAN4WRITE 8
#define TRAN4APPEND 9
#define TRAN4VOID 10
/* #define TRAN4CREATE_TEMP 11 Not Supported*/
#define TRAN4PACK 12
#define TRAN4ZAP 13
#define TRAN4INIT 15
#define TRAN4SHUTDOWN 16
#define TRAN4BACKEDUP 17
#define TRAN4INIT_UNDO 18
#define E4_LOG_IFS "Log File - invalid file status"
#define TRAN4FORWARDS 1
#define TRAN4BACKWARDS 2
#define TRAN4LOCK_BASE 1000000000
#define TRAN4LOCK_SERVER TRAN4LOCK_BASE+0
#define TRAN4LOCK_MULTIPLE TRAN4LOCK_BASE+1
#define TRAN4LOCK_BACKUP TRAN4LOCK_BASE+2
#define TRAN4LOCK_RESTORE TRAN4LOCK_BASE+3
#define TRAN4LOCK_FIX TRAN4LOCK_BASE+4
#define TRAN4VERSION_NUM 1
#ifdef S4STAND_ALONE
#define TRAN4LOCK_USERS TRAN4LOCK_BASE+1000
#define TRAN4MAX_USERS 1000
#endif
#endif /* S4OFF_TRAN */
#endif /* not S4CLIENT */
#ifdef __cplusplus
extern "C" {
#endif
#ifndef S4OFF_TRAN
#ifndef S4CLIENT
int tran4fileCreate( TRAN4FILE *, const char * ) ;
int tran4active( CODE4 *, DATA4 * ) ;
int tran4addUser( TRAN4 *, const long, const char *, const unsigned short int ) ;
/* log file examination functionality */
int S4FUNCTION tran4fileAppend( TRAN4FILE S4PTR *, LOG4HEADER S4PTR *, void S4PTR * ) ; /* a null pointer means use internal value */
int S4FUNCTION tran4fileBottom( TRAN4FILE S4PTR *, TRAN4 S4PTR * ) ;
int S4FUNCTION tran4fileSkip( TRAN4FILE S4PTR *, TRAN4 S4PTR *, const int ) ;
int S4FUNCTION tran4fileTop( TRAN4FILE S4PTR *, TRAN4 S4PTR * ) ;
int code4tranInitUndoLow( TRAN4 *, const long ) ;
int S4FUNCTION tran4set( TRAN4 S4PTR *, const int, const long, const long, const int, const unsigned int, const long, const long ) ;
int S4FUNCTION tran4putData( TRAN4 S4PTR *, void *, unsigned ) ;
/* log file examination functionality */
#ifndef S4INLINE
int S4FUNCTION tran4bottom( TRAN4 S4PTR * ) ;
unsigned long S4FUNCTION tran4clientDataId( TRAN4 S4PTR * ) ;
long S4FUNCTION tran4clientId( TRAN4 S4PTR * ) ;
long S4FUNCTION tran4id( TRAN4 S4PTR * ) ;
unsigned S4FUNCTION tran4len( TRAN4 S4PTR * ) ;
unsigned long S4FUNCTION tran4serverDataId( TRAN4 S4PTR * ) ;
int S4FUNCTION tran4skip( TRAN4 S4PTR *, int ) ;
int S4FUNCTION tran4top( TRAN4 S4PTR * ) ;
int S4FUNCTION tran4type( TRAN4 S4PTR * ) ;
#endif
void * S4FUNCTION tran4getData( TRAN4 S4PTR *, const long pos ) ;
#endif /* not S4CLIENT */
#endif /* S4OFF_TRAN */
#ifndef S4OFF_TRAN
#ifndef S4CLIENT
#ifdef S4DISTRIBUTED
int tran4lowComplete( TRAN4 *, long ) ;
#endif
S4EXPORT int S4FUNCTION tran4lowAppend( TRAN4 *, void * ) ;
S4EXPORT int S4FUNCTION tran4lowCommit( TRAN4 *, long, unsigned short int, int ) ;
S4EXPORT int S4FUNCTION tran4lowRollback( TRAN4 *, long, const int ) ;
S4EXPORT int S4FUNCTION tran4lowStart( TRAN4 *, long, int ) ;
int tran4lowUnappend( TRAN4 * ) ;
int tran4lowUnwrite( TRAN4 * ) ;
#endif /* S4CLIENT */
#endif /* S4OFF_TRAN */
#ifdef __cplusplus
}
#endif
#endif /* S4OFF_WRITE */
#ifndef S4CLIENT
int tran4closeAll( struct TRAN4St * ) ;
#ifndef S4SINGLE
#ifdef S4SERVER
int tran4lock( TRAN4 * ) ;
#endif
int S4FUNCTION code4tranLockTransactions( CODE4TRANS S4PTR *, long ) ;
int S4FUNCTION code4tranUnlockTransactions( CODE4TRANS S4PTR *, long ) ;
#endif /* S4SINGLE */
#endif /* S4CLIENT */
DATA4 *tran4data( struct TRAN4St *, const long, const long ) ;
DATA4 *tran4dataName( struct TRAN4St *, const char *, const long, const int ) ;
#ifdef E4ANALYZE
int tran4verify( TRAN4 *, int ) ;
#endif /* E4ANALYZE */
int code4tranInitLow( TRAN4 *, CODE4TRANS * ) ;
int code4transInit( CODE4TRANS *, CODE4 * ) ;
int S4FUNCTION code4transInitUndo( CODE4TRANS S4PTR * ) ;