From 8df295d049b93903f690ebd103dd8bcaa650956c Mon Sep 17 00:00:00 2001 From: ahodgkinson Date: Wed, 10 May 2006 22:27:54 +0000 Subject: [PATCH] Changed code to use a single FlmDbSystem object. Fixed utilities so that they build using FTK. git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@405 0109f412-320b-0410-ab79-c3e0c5ffbbe6 --- xflaim/Makefile | 1 - xflaim/java/jni/jbackup.cpp | 26 +++--- xflaim/java/jni/jdatavector.cpp | 8 +- xflaim/java/jni/jdb.cpp | 2 +- xflaim/java/jni/jdbsystem.cpp | 46 ++-------- xflaim/java/jni/jdomnode.cpp | 14 +-- xflaim/java/jni/jnirestore.cpp | 68 +++++++------- xflaim/java/jni/jnirestore.h | 84 +++++++++--------- xflaim/java/jni/jnistatus.cpp | 8 +- xflaim/java/jni/jnistatus.h | 32 +++---- xflaim/java/jni/jposistream.cpp | 2 +- xflaim/sample/sample.cpp | 17 +--- xflaim/src/fdllmain.cpp | 69 +-------------- xflaim/src/flaimsys.h | 60 +++++-------- xflaim/src/flbackup.cpp | 2 +- xflaim/src/flblddb.cpp | 13 ++- xflaim/src/flchkdb.cpp | 16 ++-- xflaim/src/flchktr.cpp | 2 +- xflaim/src/flcreate.cpp | 4 +- xflaim/src/flindex.cpp | 21 +++-- xflaim/src/flopen.cpp | 2 +- xflaim/src/flverify.cpp | 3 +- xflaim/src/fqsort.cpp | 10 +-- xflaim/src/fquery.cpp | 3 +- xflaim/src/fscursor.cpp | 3 +- xflaim/src/fslfileu.cpp | 29 ++---- xflaim/src/fsuperfl.cpp | 4 +- xflaim/src/fsysdata.cpp | 151 +++++++++++++++++--------------- xflaim/src/rfl.cpp | 11 ++- xflaim/src/xflaim.h | 25 +----- 30 files changed, 289 insertions(+), 447 deletions(-) diff --git a/xflaim/Makefile b/xflaim/Makefile index 32e567d..e3b57be 100644 --- a/xflaim/Makefile +++ b/xflaim/Makefile @@ -1125,7 +1125,6 @@ xflaim_jni_src = \ util_common_src = \ flm_dlst.cpp \ flm_lutl.cpp \ - ftx.cpp \ sharutil.cpp checkdb_src = \ diff --git a/xflaim/java/jni/jbackup.cpp b/xflaim/java/jni/jbackup.cpp index 2269c93..b5ec01c 100644 --- a/xflaim/java/jni/jbackup.cpp +++ b/xflaim/java/jni/jbackup.cpp @@ -46,21 +46,21 @@ public: m_pJvm = pJvm; } - RCODE XFLMAPI JNIBackupClient::WriteData( + RCODE FLMAPI JNIBackupClient::WriteData( const void * pvBuffer, FLMUINT uiBytesToWrite); - FINLINE FLMUINT getRefCount( void) + FINLINE FLMINT FLMAPI getRefCount( void) { return( IF_BackupClient::getRefCount()); } - virtual FINLINE FLMINT XFLMAPI AddRef( void) + virtual FINLINE FLMINT FLMAPI AddRef( void) { return( IF_BackupClient::AddRef()); } - virtual FINLINE FLMINT XFLMAPI Release( void) + virtual FINLINE FLMINT FLMAPI Release( void) { return( IF_BackupClient::Release()); } @@ -88,21 +88,21 @@ public: m_pJvm = pJvm; } - RCODE XFLMAPI backupStatus( + RCODE FLMAPI backupStatus( FLMUINT64 ui64BytesToDo, FLMUINT64 ui64BytesDone); - FINLINE FLMUINT getRefCount( void) + FINLINE FLMINT FLMAPI getRefCount( void) { return( IF_BackupStatus::getRefCount()); } - virtual FINLINE FLMINT XFLMAPI AddRef( void) + virtual FINLINE FLMINT FLMAPI AddRef( void) { return( IF_BackupStatus::AddRef()); } - virtual FINLINE FLMINT XFLMAPI Release( void) + virtual FINLINE FLMINT FLMAPI Release( void) { return( IF_BackupStatus::Release()); } @@ -140,13 +140,13 @@ RCODE JNIBackupClient::WriteData( } Cls = pEnv->GetObjectClass( m_jClient); - MId = pEnv->GetMethodID( Cls, "WriteData", "([B)I"); + MId = pEnv->GetMethodID( Cls, "writeData", "([B)I"); flmAssert( MId); - jBuff = pEnv->NewByteArray( uiBytesToWrite); + jBuff = pEnv->NewByteArray( (jsize)uiBytesToWrite); pvBuff = pEnv->GetPrimitiveArrayCritical(jBuff, NULL); - memcpy(pvBuff, pvBuffer, uiBytesToWrite); + f_memcpy(pvBuff, pvBuffer, uiBytesToWrite); pEnv->ReleasePrimitiveArrayCritical( jBuff, pvBuff, 0); if( RC_BAD( rc = (RCODE)pEnv->CallIntMethod( m_jClient, MId, jBuff))) @@ -238,7 +238,7 @@ JNIEXPORT jlong JNICALL Java_xflaim_Backup__1backup( flmAssert( Client); pEnv->GetJavaVM( &pJvm); - if( (pClient = new JNIBackupClient( Client, pJvm)) == NULL) + if( (pClient = f_new JNIBackupClient( Client, pJvm)) == NULL) { rc = RC_SET( NE_XFLM_MEM); ThrowError( rc, pEnv); @@ -257,7 +257,7 @@ JNIEXPORT jlong JNICALL Java_xflaim_Backup__1backup( if (Status) { - if( (pStatus = new JNIBackupStatus( Status, pJvm)) == NULL) + if( (pStatus = f_new JNIBackupStatus( Status, pJvm)) == NULL) { rc = RC_SET( NE_XFLM_MEM); ThrowError( rc, pEnv); diff --git a/xflaim/java/jni/jdatavector.cpp b/xflaim/java/jni/jdatavector.cpp index c00103e..2d5ce3e 100644 --- a/xflaim/java/jni/jdatavector.cpp +++ b/xflaim/java/jni/jdatavector.cpp @@ -503,7 +503,7 @@ JNIEXPORT jstring JNICALL Java_xflaim_DataVector__1getString( goto Exit; } - sBuf = pEnv->NewString( puzBuf, uiBufSize / sizeof( FLMUNICODE)); + sBuf = pEnv->NewString( puzBuf, (jsize)(uiBufSize / sizeof( FLMUNICODE))); Exit: @@ -532,7 +532,7 @@ JNIEXPORT jbyteArray JNICALL Java_xflaim_DataVector__1getBinary( FLMBOOL bMustRelease = false; uiLength = THIS_VECTOR()->getDataLength( (FLMUINT)iElementNumber); - Data = pEnv->NewByteArray( uiLength); + Data = pEnv->NewByteArray( (jsize)uiLength); if ( (pvData = pEnv->GetPrimitiveArrayCritical( Data, &bIsCopy)) == NULL) { @@ -589,7 +589,7 @@ JNIEXPORT jbyteArray JNICALL Java_xflaim_DataVector__1outputKey( FLMBOOL bMustRelease = false; uiLength = XFLM_MAX_KEY_SIZE; - Key = pEnv->NewByteArray( uiLength); + Key = pEnv->NewByteArray( (jsize)uiLength); if( (pvKey = pEnv->GetPrimitiveArrayCritical( Key, &bIsCopy)) == NULL) { @@ -646,7 +646,7 @@ JNIEXPORT jbyteArray JNICALL Java_xflaim_DataVector__1outputData( FLMBOOL bMustRelease = false; uiLength = XFLM_MAX_KEY_SIZE; - Data = pEnv->NewByteArray( uiLength); + Data = pEnv->NewByteArray( (jsize)uiLength); if ( (pvData = pEnv->GetPrimitiveArrayCritical( Data, &bIsCopy)) == NULL) { diff --git a/xflaim/java/jni/jdb.cpp b/xflaim/java/jni/jdb.cpp index 27f6fbf..3f3e529 100644 --- a/xflaim/java/jni/jdb.cpp +++ b/xflaim/java/jni/jdb.cpp @@ -311,7 +311,7 @@ Exit: } pEnv->ReleaseStringCritical( sElementName, pszElementName); - return( (jlong)uiNameId); + return( (jint)uiNameId); } /**************************************************************************** diff --git a/xflaim/java/jni/jdbsystem.cpp b/xflaim/java/jni/jdbsystem.cpp index b7b889f..1c24498 100644 --- a/xflaim/java/jni/jdbsystem.cpp +++ b/xflaim/java/jni/jdbsystem.cpp @@ -39,9 +39,9 @@ JNIEXPORT jlong JNICALL Java_xflaim_DbSystem__1createDbSystem( JNIEnv * pEnv, jobject) // obj) { - F_DbSystem * pDbSystem; + IF_DbSystem * pDbSystem; - if( (pDbSystem = new F_DbSystem()) == NULL) + if( RC_BAD( FlmAllocDbSystem( &pDbSystem))) { ThrowError( NE_XFLM_MEM, pEnv); } @@ -49,38 +49,6 @@ JNIEXPORT jlong JNICALL Java_xflaim_DbSystem__1createDbSystem( return( (jlong)(FLMUINT)pDbSystem); } -/**************************************************************************** -Desc: -****************************************************************************/ -JNIEXPORT void JNICALL Java_xflaim_DbSystem__1init( - JNIEnv * pEnv, - jobject, // obj, - jlong lThis) -{ - RCODE rc = NE_XFLM_OK; - - if (RC_BAD( rc = THIS_DBSYS()->init())) - { - ThrowError( rc, pEnv); - goto Exit; - } - -Exit: - - return; -} - -/**************************************************************************** -Desc: -****************************************************************************/ -JNIEXPORT void JNICALL Java_xflaim_DbSystem__1exit( - JNIEnv *, // pEnv, - jobject, // obj, - jlong lThis) -{ - THIS_DBSYS()->exit(); -} - /**************************************************************************** Desc: ****************************************************************************/ @@ -361,7 +329,7 @@ JNIEXPORT void JNICALL Java_xflaim_DbSystem__1dbRestore( } flmAssert( RestoreClient); - if ((pRestoreClient = new JNIRestoreClient( RestoreClient, pJvm)) == NULL) + if ((pRestoreClient = f_new JNIRestoreClient( RestoreClient, pJvm)) == NULL) { ThrowError( NE_XFLM_MEM, pEnv); goto Exit; @@ -369,7 +337,7 @@ JNIEXPORT void JNICALL Java_xflaim_DbSystem__1dbRestore( if (RestoreStatus != NULL) { - if ((pRestoreStatus = new JNIRestoreStatus( RestoreStatus, pJvm)) == NULL) + if ((pRestoreStatus = f_new JNIRestoreStatus( RestoreStatus, pJvm)) == NULL) { ThrowError( NE_XFLM_MEM, pEnv); goto Exit; @@ -458,7 +426,7 @@ JNIEXPORT void JNICALL Java_xflaim_DbSystem__1dbRename( if (Status != NULL) { pEnv->GetJavaVM( &pJvm); - if ((pStatus = new JNIRenameStatus( Status, pJvm)) == NULL) + if ((pStatus = f_new JNIRenameStatus( Status, pJvm)) == NULL) { ThrowError( NE_XFLM_MEM, pEnv); goto Exit; @@ -547,7 +515,7 @@ JNIEXPORT void JNICALL Java_xflaim_DbSystem__1dbCopy( if (Status) { pEnv->GetJavaVM( &pJvm); - if ( (pStatus = new JNICopyStatus( Status, pJvm)) == NULL) + if ( (pStatus = f_new JNICopyStatus( Status, pJvm)) == NULL) { ThrowError( NE_XFLM_MEM, pEnv); goto Exit; @@ -639,7 +607,7 @@ JNIEXPORT jlong JNICALL Java_xflaim_DbSystem__1dbCheck( pEnv->GetJavaVM( &pJvm); - if ((pStatus = new JNICheckStatus( Status, pJvm)) == NULL) + if ((pStatus = f_new JNICheckStatus( Status, pJvm)) == NULL) { ThrowError( NE_XFLM_MEM, pEnv); goto Exit; diff --git a/xflaim/java/jni/jdomnode.cpp b/xflaim/java/jni/jdomnode.cpp index 00830cf..5d23aef 100644 --- a/xflaim/java/jni/jdomnode.cpp +++ b/xflaim/java/jni/jdomnode.cpp @@ -693,7 +693,7 @@ JNIEXPORT jstring JNICALL Java_xflaim_DOMNode__1getPrefix( goto Exit; } - sPrefix = pEnv->NewString( puzPrefix, uiNumChars); + sPrefix = pEnv->NewString( puzPrefix, (jsize)uiNumChars); Exit: @@ -1015,7 +1015,7 @@ JNIEXPORT jstring JNICALL Java_xflaim_DOMNode__1getNamespaceURI( goto Exit; } - sNamespaceURI = pEnv->NewString( puzNamespaceURI, uiNumChars); + sNamespaceURI = pEnv->NewString( puzNamespaceURI, (jsize)uiNumChars); Exit: @@ -1070,7 +1070,7 @@ JNIEXPORT jstring JNICALL Java_xflaim_DOMNode__1getLocalName( goto Exit; } - sLocalName = pEnv->NewString( puzLocalName, uiNumChars); + sLocalName = pEnv->NewString( puzLocalName, (jsize)uiNumChars); Exit: @@ -1125,7 +1125,7 @@ JNIEXPORT jstring JNICALL Java_xflaim_DOMNode__1getQualifiedName( goto Exit; } - sLocalName = pEnv->NewString( puzQualName, uiNumChars); + sLocalName = pEnv->NewString( puzQualName, (jsize)uiNumChars); Exit: @@ -1229,7 +1229,7 @@ JNIEXPORT jstring JNICALL Java_xflaim_DOMNode__1getString( goto Exit; } - sBuf = pEnv->NewString( puzBuf, uiNumChars); + sBuf = pEnv->NewString( puzBuf, (jsize)uiNumChars); Exit: @@ -1288,7 +1288,7 @@ JNIEXPORT jint JNICALL Java_xflaim_DOMNode__1getDataType( Exit: - return( uiType); + return( (jint)uiType); } /**************************************************************************** @@ -1339,7 +1339,7 @@ JNIEXPORT jbyteArray JNICALL Java_xflaim_DOMNode__1getBinary( goto Exit; } - Data = pEnv->NewByteArray( uiLength); + Data = pEnv->NewByteArray( (jsize)uiLength); if ( (pvData = pEnv->GetPrimitiveArrayCritical( Data, &bIsCopy)) == NULL) { diff --git a/xflaim/java/jni/jnirestore.cpp b/xflaim/java/jni/jnirestore.cpp index 40db54b..bd22b08 100644 --- a/xflaim/java/jni/jnirestore.cpp +++ b/xflaim/java/jni/jnirestore.cpp @@ -29,7 +29,7 @@ /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreClient::openBackupSet( void) +RCODE FLMAPI JNIRestoreClient::openBackupSet( void) { RCODE rc = NE_XFLM_OK; JNIEnv * pEnv; @@ -74,7 +74,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreClient::openRflFile( +RCODE FLMAPI JNIRestoreClient::openRflFile( FLMUINT uiFileNum) { RCODE rc = NE_XFLM_OK; @@ -121,7 +121,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreClient::openIncFile( +RCODE FLMAPI JNIRestoreClient::openIncFile( FLMUINT uiFileNum) { RCODE rc = NE_XFLM_OK; @@ -167,7 +167,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreClient::read( +RCODE FLMAPI JNIRestoreClient::read( FLMUINT uiLength, void * pvBuffer, FLMUINT * puiBytesRead) @@ -229,7 +229,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreClient::close( void) +RCODE FLMAPI JNIRestoreClient::close( void) { RCODE rc = NE_XFLM_OK; JNIEnv * pEnv; @@ -274,7 +274,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreClient::abortFile( void) +RCODE FLMAPI JNIRestoreClient::abortFile( void) { RCODE rc = NE_XFLM_OK; JNIEnv * pEnv; @@ -319,7 +319,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportProgress( +RCODE FLMAPI JNIRestoreStatus::reportProgress( eRestoreAction * peAction, FLMUINT64 ui64BytesToDo, FLMUINT64 ui64BytesDone) @@ -366,7 +366,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportError( +RCODE FLMAPI JNIRestoreStatus::reportError( eRestoreAction * peAction, RCODE rcErr) { @@ -410,7 +410,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportBeginTrans( +RCODE FLMAPI JNIRestoreStatus::reportBeginTrans( eRestoreAction * peAction, FLMUINT64 ui64TransId) { @@ -455,7 +455,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportCommitTrans( +RCODE FLMAPI JNIRestoreStatus::reportCommitTrans( eRestoreAction * peAction, FLMUINT64 ui64TransId) { @@ -500,7 +500,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportAbortTrans( +RCODE FLMAPI JNIRestoreStatus::reportAbortTrans( eRestoreAction * peAction, FLMUINT64 ui64TransId) { @@ -545,7 +545,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportBlockChainFree( +RCODE FLMAPI JNIRestoreStatus::reportBlockChainFree( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT64 ui64MaintDocNum, @@ -595,7 +595,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportIndexSuspend( +RCODE FLMAPI JNIRestoreStatus::reportIndexSuspend( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiIndexNum) @@ -641,7 +641,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportIndexResume( +RCODE FLMAPI JNIRestoreStatus::reportIndexResume( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiIndexNum) @@ -687,7 +687,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportReduce( +RCODE FLMAPI JNIRestoreStatus::reportReduce( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCount) @@ -733,7 +733,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportUpgrade( +RCODE FLMAPI JNIRestoreStatus::reportUpgrade( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiOldDbVersion, @@ -781,7 +781,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportOpenRflFile( +RCODE FLMAPI JNIRestoreStatus::reportOpenRflFile( eRestoreAction * peAction, FLMUINT uiFileNum) { @@ -826,7 +826,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportRflRead( +RCODE FLMAPI JNIRestoreStatus::reportRflRead( eRestoreAction * peAction, FLMUINT uiFileNum, FLMUINT uiBytesRead) @@ -872,7 +872,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportEnableEncryption( +RCODE FLMAPI JNIRestoreStatus::reportEnableEncryption( eRestoreAction * peAction, FLMUINT64 ui64TransId) { @@ -917,7 +917,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportWrapKey( +RCODE FLMAPI JNIRestoreStatus::reportWrapKey( eRestoreAction * peAction, FLMUINT64 ui64TransId) { @@ -962,7 +962,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportSetNextNodeId( +RCODE FLMAPI JNIRestoreStatus::reportSetNextNodeId( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1010,7 +1010,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeSetMetaValue( +RCODE FLMAPI JNIRestoreStatus::reportNodeSetMetaValue( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1059,7 +1059,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeSetPrefixId( +RCODE FLMAPI JNIRestoreStatus::reportNodeSetPrefixId( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1109,7 +1109,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeFlagsUpdate( +RCODE FLMAPI JNIRestoreStatus::reportNodeFlagsUpdate( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1159,7 +1159,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportAttributeSetValue( +RCODE FLMAPI JNIRestoreStatus::reportAttributeSetValue( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1208,7 +1208,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeSetValue( +RCODE FLMAPI JNIRestoreStatus::reportNodeSetValue( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1255,7 +1255,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeUpdate( +RCODE FLMAPI JNIRestoreStatus::reportNodeUpdate( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1302,7 +1302,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportInsertBefore( +RCODE FLMAPI JNIRestoreStatus::reportInsertBefore( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1352,7 +1352,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeCreate( +RCODE FLMAPI JNIRestoreStatus::reportNodeCreate( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1403,7 +1403,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeChildrenDelete( +RCODE FLMAPI JNIRestoreStatus::reportNodeChildrenDelete( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1452,7 +1452,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportAttributeDelete( +RCODE FLMAPI JNIRestoreStatus::reportAttributeDelete( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1501,7 +1501,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportNodeDelete( +RCODE FLMAPI JNIRestoreStatus::reportNodeDelete( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1548,7 +1548,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportDocumentDone( +RCODE FLMAPI JNIRestoreStatus::reportDocumentDone( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -1595,7 +1595,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRestoreStatus::reportRollOverDbKey( +RCODE FLMAPI JNIRestoreStatus::reportRollOverDbKey( eRestoreAction * peAction, FLMUINT64 ui64TransId) { diff --git a/xflaim/java/jni/jnirestore.h b/xflaim/java/jni/jnirestore.h index 310ac6d..9031a11 100644 --- a/xflaim/java/jni/jnirestore.h +++ b/xflaim/java/jni/jnirestore.h @@ -26,7 +26,7 @@ /**************************************************************************** Desc: ****************************************************************************/ -class JNIRestoreClient : public IF_RestoreClient, public XF_Base +class JNIRestoreClient : public IF_RestoreClient { public: @@ -40,34 +40,34 @@ public: m_pJvm = pJvm; } - RCODE XFLMAPI openBackupSet( void); + RCODE FLMAPI openBackupSet( void); - RCODE XFLMAPI openRflFile( + RCODE FLMAPI openRflFile( FLMUINT uiFileNum); - RCODE XFLMAPI openIncFile( + RCODE FLMAPI openIncFile( FLMUINT uiFileNum); - RCODE XFLMAPI read( + RCODE FLMAPI read( FLMUINT uiLength, void * pvBuffer, FLMUINT * puiBytesRead); - RCODE XFLMAPI close( void); + RCODE FLMAPI close( void); - RCODE XFLMAPI abortFile( void); + RCODE FLMAPI abortFile( void); - FINLINE FLMUINT getRefCount( void) + FINLINE FLMINT FLMAPI getRefCount( void) { return( IF_RestoreClient::getRefCount()); } - virtual FINLINE FLMINT XFLMAPI AddRef( void) + virtual FINLINE FLMINT FLMAPI AddRef( void) { return( IF_RestoreClient::AddRef()); } - virtual FINLINE FLMINT XFLMAPI Release( void) + virtual FINLINE FLMINT FLMAPI Release( void) { return( IF_RestoreClient::Release()); } @@ -81,7 +81,7 @@ private: /**************************************************************************** Desc: ****************************************************************************/ -class JNIRestoreStatus : public IF_RestoreStatus, public XF_Base +class JNIRestoreStatus : public IF_RestoreStatus { public: @@ -95,37 +95,37 @@ public: m_pJvm = pJvm; } - RCODE XFLMAPI reportProgress( + RCODE FLMAPI reportProgress( eRestoreAction * peAction, FLMUINT64 ui64BytesToDo, FLMUINT64 ui64BytesDone); - RCODE XFLMAPI reportError( + RCODE FLMAPI reportError( eRestoreAction * peAction, RCODE rcErr); - RCODE XFLMAPI reportOpenRflFile( + RCODE FLMAPI reportOpenRflFile( eRestoreAction * peAction, FLMUINT uiFileNum); - RCODE XFLMAPI reportRflRead( + RCODE FLMAPI reportRflRead( eRestoreAction * peAction, FLMUINT uiFileNum, FLMUINT uiBytesRead); - RCODE XFLMAPI reportBeginTrans( + RCODE FLMAPI reportBeginTrans( eRestoreAction * peAction, FLMUINT64 ui64TransId); - RCODE XFLMAPI reportCommitTrans( + RCODE FLMAPI reportCommitTrans( eRestoreAction * peAction, FLMUINT64 ui64TransId); - RCODE XFLMAPI reportAbortTrans( + RCODE FLMAPI reportAbortTrans( eRestoreAction * peAction, FLMUINT64 ui64TransId); - RCODE XFLMAPI reportBlockChainFree( + RCODE FLMAPI reportBlockChainFree( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT64 ui64MaintDocNum, @@ -133,66 +133,66 @@ public: FLMUINT uiEndBlkAddr, FLMUINT uiCount); - RCODE XFLMAPI reportIndexSuspend( + RCODE FLMAPI reportIndexSuspend( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiIndexNum); - RCODE XFLMAPI reportIndexResume( + RCODE FLMAPI reportIndexResume( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiIndexNum); - RCODE XFLMAPI reportReduce( + RCODE FLMAPI reportReduce( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCount); - RCODE XFLMAPI reportUpgrade( + RCODE FLMAPI reportUpgrade( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiOldDbVersion, FLMUINT uiNewDbVersion); - RCODE XFLMAPI reportEnableEncryption( + RCODE FLMAPI reportEnableEncryption( eRestoreAction * peAction, FLMUINT64 ui64TransId); - RCODE XFLMAPI reportWrapKey( + RCODE FLMAPI reportWrapKey( eRestoreAction * peAction, FLMUINT64 ui64TransId); - RCODE XFLMAPI reportRollOverDbKey( + RCODE FLMAPI reportRollOverDbKey( eRestoreAction * peAction, FLMUINT64 ui64TransId); - RCODE XFLMAPI reportDocumentDone( + RCODE FLMAPI reportDocumentDone( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64NodeId); - RCODE XFLMAPI reportNodeDelete( + RCODE FLMAPI reportNodeDelete( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64NodeId); - RCODE XFLMAPI reportAttributeDelete( + RCODE FLMAPI reportAttributeDelete( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64ElementId, FLMUINT uiAttrNameId); - RCODE XFLMAPI reportNodeChildrenDelete( + RCODE FLMAPI reportNodeChildrenDelete( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64NodeId, FLMUINT uiNameId); - RCODE XFLMAPI reportNodeCreate( + RCODE FLMAPI reportNodeCreate( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -201,7 +201,7 @@ public: FLMUINT uiNameId, eNodeInsertLoc eLocation); - RCODE XFLMAPI reportInsertBefore( + RCODE FLMAPI reportInsertBefore( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -209,26 +209,26 @@ public: FLMUINT64 ui64NewChildId, FLMUINT64 ui64RefChildId); - RCODE XFLMAPI reportNodeUpdate( + RCODE FLMAPI reportNodeUpdate( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64NodeId); - RCODE XFLMAPI reportNodeSetValue( + RCODE FLMAPI reportNodeSetValue( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64NodeId); - RCODE XFLMAPI reportAttributeSetValue( + RCODE FLMAPI reportAttributeSetValue( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64ElementNodeId, FLMUINT uiAttrNameId); - RCODE XFLMAPI reportNodeFlagsUpdate( + RCODE FLMAPI reportNodeFlagsUpdate( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -236,7 +236,7 @@ public: FLMUINT uiFlags, FLMBOOL bAdd); - RCODE XFLMAPI reportNodeSetPrefixId( + RCODE FLMAPI reportNodeSetPrefixId( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, @@ -244,30 +244,30 @@ public: FLMUINT uiAttrNameId, FLMUINT uiPrefixId); - RCODE XFLMAPI reportNodeSetMetaValue( + RCODE FLMAPI reportNodeSetMetaValue( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64NodeId, FLMUINT64 ui64MetaValue); - RCODE XFLMAPI reportSetNextNodeId( + RCODE FLMAPI reportSetNextNodeId( eRestoreAction * peAction, FLMUINT64 ui64TransId, FLMUINT uiCollection, FLMUINT64 ui64NextNodeId); - FINLINE FLMUINT getRefCount( void) + FINLINE FLMINT FLMAPI getRefCount( void) { return( IF_RestoreStatus::getRefCount()); } - virtual FINLINE FLMINT XFLMAPI AddRef( void) + virtual FINLINE FLMINT FLMAPI AddRef( void) { return( IF_RestoreStatus::AddRef()); } - virtual FINLINE FLMINT XFLMAPI Release( void) + virtual FINLINE FLMINT FLMAPI Release( void) { return( IF_RestoreStatus::Release()); } diff --git a/xflaim/java/jni/jnistatus.cpp b/xflaim/java/jni/jnistatus.cpp index 2eb38fe..54b910a 100644 --- a/xflaim/java/jni/jnistatus.cpp +++ b/xflaim/java/jni/jnistatus.cpp @@ -28,7 +28,7 @@ /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNIRenameStatus::dbRenameStatus( +RCODE FLMAPI JNIRenameStatus::dbRenameStatus( const char * pszSrcFileName, const char * pszDstFileName) { @@ -82,7 +82,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNICopyStatus::dbCopyStatus( +RCODE FLMAPI JNICopyStatus::dbCopyStatus( FLMUINT64 ui64BytesToCopy, FLMUINT64 ui64BytesCopied, FLMBOOL bNewSrcFile, @@ -140,7 +140,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNICheckStatus::reportProgress( +RCODE FLMAPI JNICheckStatus::reportProgress( XFLM_PROGRESS_CHECK_INFO *) // pProgCheck) { RCODE rc = NE_XFLM_OK; @@ -196,7 +196,7 @@ Exit: /**************************************************************************** Desc: ****************************************************************************/ -RCODE XFLMAPI JNICheckStatus::reportCheckErr( +RCODE FLMAPI JNICheckStatus::reportCheckErr( XFLM_CORRUPT_INFO *, // pCorruptInfo, FLMBOOL *) // pbFix) { diff --git a/xflaim/java/jni/jnistatus.h b/xflaim/java/jni/jnistatus.h index 671fb8a..fc0fda5 100644 --- a/xflaim/java/jni/jnistatus.h +++ b/xflaim/java/jni/jnistatus.h @@ -30,7 +30,7 @@ /**************************************************************************** Desc: ****************************************************************************/ -class JNIRenameStatus : public IF_DbRenameStatus, public XF_Base +class JNIRenameStatus : public IF_DbRenameStatus { public: @@ -44,21 +44,21 @@ public: m_pJvm = pJvm; } - RCODE XFLMAPI dbRenameStatus( + RCODE FLMAPI dbRenameStatus( const char * pszSrcFileName, const char * pszDstFileName); - FINLINE FLMUINT getRefCount( void) + FINLINE FLMINT FLMAPI getRefCount( void) { return( IF_DbRenameStatus::getRefCount()); } - virtual FINLINE FLMINT XFLMAPI AddRef( void) + virtual FINLINE FLMINT FLMAPI AddRef( void) { return( IF_DbRenameStatus::AddRef()); } - virtual FINLINE FLMINT XFLMAPI Release( void) + virtual FINLINE FLMINT FLMAPI Release( void) { return( IF_DbRenameStatus::Release()); } @@ -72,7 +72,7 @@ private: /**************************************************************************** Desc: ****************************************************************************/ -class JNICopyStatus : public IF_DbCopyStatus, public XF_Base +class JNICopyStatus : public IF_DbCopyStatus { public: @@ -86,24 +86,24 @@ public: m_pJvm = pJvm; } - RCODE XFLMAPI dbCopyStatus( + RCODE FLMAPI dbCopyStatus( FLMUINT64 ui64BytesToCopy, FLMUINT64 ui64BytesCopied, FLMBOOL bNewSrcFile, const char * pszSrcFileName, const char * pszDestFileName); - FINLINE FLMUINT getRefCount( void) + FINLINE FLMINT FLMAPI getRefCount( void) { return( IF_DbCopyStatus::getRefCount()); } - virtual FINLINE FLMINT XFLMAPI AddRef( void) + virtual FINLINE FLMINT FLMAPI AddRef( void) { return( IF_DbCopyStatus::AddRef()); } - virtual FINLINE FLMINT XFLMAPI Release( void) + virtual FINLINE FLMINT FLMAPI Release( void) { return( IF_DbCopyStatus::Release()); } @@ -117,7 +117,7 @@ private: /**************************************************************************** Desc: ****************************************************************************/ -class JNICheckStatus : public IF_DbCheckStatus, public XF_Base +class JNICheckStatus : public IF_DbCheckStatus { public: @@ -131,24 +131,24 @@ public: m_pJvm = pJvm; } - RCODE XFLMAPI reportProgress( + RCODE FLMAPI reportProgress( XFLM_PROGRESS_CHECK_INFO * pProgCheck); - RCODE XFLMAPI reportCheckErr( + RCODE FLMAPI reportCheckErr( XFLM_CORRUPT_INFO * pCorruptInfo, FLMBOOL * pbFix); - FINLINE FLMUINT getRefCount( void) + FINLINE FLMINT FLMAPI getRefCount( void) { return( IF_DbCheckStatus::getRefCount()); } - virtual FINLINE FLMINT XFLMAPI AddRef( void) + virtual FINLINE FLMINT FLMAPI AddRef( void) { return( IF_DbCheckStatus::AddRef()); } - virtual FINLINE FLMINT XFLMAPI Release( void) + virtual FINLINE FLMINT FLMAPI Release( void) { return( IF_DbCheckStatus::Release()); } diff --git a/xflaim/java/jni/jposistream.cpp b/xflaim/java/jni/jposistream.cpp index a84daf0..257e11f 100644 --- a/xflaim/java/jni/jposistream.cpp +++ b/xflaim/java/jni/jposistream.cpp @@ -28,7 +28,7 @@ #include "jniftk.h" #define THIS_STREAM() \ - ((F_PosIStream *)(FLMUINT)lThis) + ((IF_PosIStream *)(FLMUINT)lThis) /**************************************************************************** Desc: diff --git a/xflaim/sample/sample.cpp b/xflaim/sample/sample.cpp index f7f2d2c..ce44cb3 100644 --- a/xflaim/sample/sample.cpp +++ b/xflaim/sample/sample.cpp @@ -132,13 +132,6 @@ int main( goto Exit; } - // Initialize the database system - - if( RC_BAD( rc = pDbSystem->init())) - { - goto Exit; - } - // Create the database. This code will remove the database first if it // exists. Once removed, it will try to create it. If that fails for // any reason other than the database already exists, it will exit. @@ -845,12 +838,10 @@ Exit: printMessage( (char *)ucMsgBuf); } - // Shut down the XFlaim database engine. This call must be made - // even if the init call failed. No more XFlaim calls should be made - // by the application. - - pDbSystem->exit(); - pDbSystem->Release(); + if( pDbSystem) + { + pDbSystem->Release(); + } return( 0); } diff --git a/xflaim/src/fdllmain.cpp b/xflaim/src/fdllmain.cpp index 3c3e146..ac880b9 100644 --- a/xflaim/src/fdllmain.cpp +++ b/xflaim/src/fdllmain.cpp @@ -25,7 +25,6 @@ #include "flaimsys.h" -static F_DbSystem * gv_pDbSystem = NULL; static FLMATOMIC gv_lockCount = 0; FLMEXTC RCODE FLMAPI DllCanUnloadNow( void); @@ -70,41 +69,12 @@ Desc: Returns 0 if it's okay to unload, or a non-zero status ******************************************************************************/ FLMEXTC RCODE FLMAPI DllCanUnloadNow( void) { - RCODE rc = NE_XFLM_OK; - - flmAssert( gv_pDbSystem); - if( gv_lockCount > 1) { - rc = RC_SET( NE_XFLM_FAILURE); - } - else - { - flmAssert( gv_lockCount == 1); - - f_mutexLock( gv_XFlmSysData.hShareMutex); - - if (gv_XFlmSysData.pDatabaseHashTbl) - { - FBUCKET * pDatabaseHashTbl; - FLMUINT uiCnt; - - for (uiCnt = 0, pDatabaseHashTbl = gv_XFlmSysData.pDatabaseHashTbl; - uiCnt < FILE_HASH_ENTRIES; - uiCnt++, pDatabaseHashTbl++) - { - if (pDatabaseHashTbl->pFirstInBucket != NULL) - { - rc = RC_SET( NE_XFLM_FAILURE); - break; - } - } - } - - f_mutexUnlock( gv_XFlmSysData.hShareMutex); + return( RC_SET( NE_XFLM_FAILURE)); } - return( rc); + return( NE_XFLM_OK); } /****************************************************************************** @@ -113,31 +83,7 @@ Desc: Called by PSA when it loads the library. Must return 0 for ******************************************************************************/ FLMEXTC RCODE FLMAPI DllStart( void) { - RCODE rc = NE_XFLM_OK; - - if( (gv_pDbSystem = f_new F_DbSystem) == NULL) - { - rc = NE_XFLM_MEM; - goto Exit; - } - - if( RC_BAD( rc = gv_pDbSystem->init())) - { - goto Exit; - } - -Exit: - - if( RC_BAD( rc)) - { - if( gv_pDbSystem) - { - gv_pDbSystem->Release(); - gv_pDbSystem = NULL; - } - } - - return( rc); + return( NE_XFLM_OK); } /****************************************************************************** @@ -146,15 +92,6 @@ Desc: Called by PSA when it unloads the library. The return value ******************************************************************************/ FLMEXTC RCODE FLMAPI DllStop( void) { - if( gv_pDbSystem) - { - flmAssert( gv_lockCount == 1); - - gv_pDbSystem->exit(); - gv_pDbSystem->Release(); - gv_pDbSystem = NULL; - } - return( NE_XFLM_OK); } diff --git a/xflaim/src/flaimsys.h b/xflaim/src/flaimsys.h index 3f5de41..c421e9c 100644 --- a/xflaim/src/flaimsys.h +++ b/xflaim/src/flaimsys.h @@ -151,6 +151,12 @@ GV_EXTERN FLMUINT64 gv_ui64MaxSignedIntVal #endif ; +GV_EXTERN F_DbSystem * gv_pXFlmDbSystem +#ifdef DEFINE_NUMBER_MAXIMUMS + = NULL +#endif + ; + // A global module lock allows us to properly implement DllCanUnloadNow // This is only used in a COM environment. The functions are actually // defined in fdllmain.cpp @@ -1793,7 +1799,7 @@ typedef struct OLD_NODE_DATA } OLD_NODE_DATA; /***************************************************************************** -Desc: Thread's database object - returned by dbOpen, dbCreate in F_DbSystem class +Desc: *****************************************************************************/ class F_OldNodeList : public F_Object { @@ -1840,7 +1846,7 @@ private: }; /***************************************************************************** -Desc: Thread's database object - returned by dbOpen, dbCreate in F_DbSystem class +Desc: *****************************************************************************/ class F_Db : public IF_Db { @@ -4716,26 +4722,24 @@ friend class F_IStream; }; /***************************************************************************** -Desc: FLAIM database system object +Desc: ******************************************************************************/ -class F_DbSystem : public IF_DbSystem +class F_DbSystem : public IF_DbSystem, public F_OSBase { public: - F_DbSystem() - { - m_refCnt = 1; - LockModule(); - } + F_DbSystem(); - virtual ~F_DbSystem() - { - UnlockModule(); - } + virtual ~F_DbSystem(); virtual FLMINT FLMAPI AddRef( void); virtual FLMINT FLMAPI Release( void); + + virtual FLMINT FLMAPI getRefCount( void) + { + return( (FLMINT)m_refCnt); + } RCODE FLMAPI init( void); @@ -4743,8 +4747,6 @@ public: const char * pszParamName, const char * pszValue); - void FLMAPI exit(); - void FLMAPI getFileSystem( IF_FileSystem ** ppFileSystem); @@ -5031,14 +5033,6 @@ public: FLMBOOL FLMAPI errorIsFileCorrupt( RCODE rc); - static FLMBOOL _errorIsFileCorrupt( - RCODE rc) - { - F_DbSystem dbSystem; - - return( dbSystem.errorIsFileCorrupt( rc)); - } - const char * FLMAPI checkErrorToStr( FLMINT iCheckErrorCode); @@ -5158,11 +5152,6 @@ public: return( FALSE); } - static void getDbBasePath( - char * pszBaseDbName, - const char * pszDbName, - FLMUINT * puiBaseDbNameLen); - RCODE FLMAPI compareUTF8Strings( const FLMBYTE * pucLString, FLMUINT uiLStrBytes, @@ -5252,10 +5241,6 @@ private: return( rc); } - void lockSysData( void); - - void unlockSysData( void); - void initFastBlockCheckSum( void); RCODE allocDb( @@ -5307,8 +5292,7 @@ private: static void checkNotUsedObjects( void); - static FLMATOMIC m_flmSysSpinLock; - static FLMUINT m_uiFlmSysStartupCount; + FLMATOMIC m_refCnt; friend class F_Db; friend class F_Database; @@ -5316,6 +5300,11 @@ friend class F_DbRebuild; friend class F_DbCheck; }; +void flmGetDbBasePath( + char * pszBaseDbName, + const char * pszDbName, + FLMUINT * puiBaseDbNameLen); + // Supported text types typedef enum @@ -8200,8 +8189,7 @@ typedef struct #define REBUILD_RSET_ENTRY_SIZE 21 /*============================================================================= -Desc: Class to rebuild a broken database. This class is used by - F_DbSystem::dbRebuild() +Desc: Class to rebuild a broken database. =============================================================================*/ class F_DbRebuild : public F_Object { diff --git a/xflaim/src/flbackup.cpp b/xflaim/src/flbackup.cpp index 7faa9d3..d82db75 100644 --- a/xflaim/src/flbackup.cpp +++ b/xflaim/src/flbackup.cpp @@ -1022,7 +1022,7 @@ RCODE F_DbSystem::dbRestore( // Get the base path - getDbBasePath( (char *)szBasePath, pszDbPath, NULL); + flmGetDbBasePath( (char *)szBasePath, pszDbPath, NULL); // Lock the global mutex diff --git a/xflaim/src/flblddb.cpp b/xflaim/src/flblddb.cpp index 11f23a8..a2c9cb3 100644 --- a/xflaim/src/flblddb.cpp +++ b/xflaim/src/flblddb.cpp @@ -342,7 +342,6 @@ RCODE F_DbRebuild::dbRebuild( FLMUINT uiPriorityCount; FLMBOOL bUsedDatabase = FALSE; FLMBOOL bWaited; - F_DbSystem dbSystem; FLMBYTE * pucWrappingKey = NULL; FLMUINT32 ui32KeyLen; F_SEM hWaitSem = F_SEM_NULL; @@ -364,8 +363,8 @@ Retry: // See if there is a database object for this file // May unlock and re-lock the global mutex. - if( RC_BAD( rc = dbSystem.findDatabase( pszSourceDbPath, pszSourceDataDir, - &pDatabase))) + if( RC_BAD( rc = gv_pXFlmDbSystem->findDatabase( + pszSourceDbPath, pszSourceDataDir, &pDatabase))) { goto Exit; } @@ -509,7 +508,7 @@ Retry: goto Exit; } else if( rc == NE_XFLM_NOT_FLAIM || - !F_DbSystem::validBlockSize( m_dbHdr.ui16BlockSize)) + !gv_pXFlmDbSystem->validBlockSize( m_dbHdr.ui16BlockSize)) { FLMUINT uiSaveBlockSize; FLMUINT uiCalcBlockSize; @@ -606,7 +605,7 @@ Retry: // Delete the destination database in case it already exists. - if( RC_BAD( rc = dbSystem.dbRemove( pszDestDbPath, pszDestDataDir, + if( RC_BAD( rc = gv_pXFlmDbSystem->dbRemove( pszDestDbPath, pszDestDataDir, pszDestRflDir, TRUE))) { if( rc == NE_FLM_IO_PATH_NOT_FOUND || rc == NE_FLM_IO_INVALID_FILENAME) @@ -631,7 +630,7 @@ Retry: // Create the destination database - if( RC_BAD( rc = dbSystem.dbCreate( pszDestDbPath, pszDestDataDir, + if( RC_BAD( rc = gv_pXFlmDbSystem->dbCreate( pszDestDbPath, pszDestDataDir, pszDestRflDir, pszDictPath, NULL, pCreateOpts, (IF_Db **)&m_pDb))) { @@ -685,7 +684,7 @@ Retry: m_pDb->Release(); m_pDb = NULL; - if( RC_BAD( rc = dbSystem.openDb( pszDestDbPath, pszDestDataDir, + if( RC_BAD( rc = gv_pXFlmDbSystem->openDb( pszDestDbPath, pszDestDataDir, pszDestRflDir, pszPassword, 0, (IF_Db **)&m_pDb))) { goto Exit; diff --git a/xflaim/src/flchkdb.cpp b/xflaim/src/flchkdb.cpp index cac9990..2e07a16 100644 --- a/xflaim/src/flchkdb.cpp +++ b/xflaim/src/flchkdb.cpp @@ -78,7 +78,6 @@ RCODE F_DbCheck::createAndOpenResultSetDb( void) { RCODE rc = NE_XFLM_OK; XFLM_CREATE_OPTS createOpts; - F_DbSystem dbSystem; if (m_pResultSetDb) { @@ -97,9 +96,9 @@ RCODE F_DbCheck::createAndOpenResultSetDb( void) f_sprintf( m_szResultSetDibName, "%d.db", (int)m_pRandGen->getUINT32( 100, 20000)); - if (RC_OK( rc = dbSystem.dbCreate( m_szResultSetDibName, NULL, NULL, - NULL, NULL, &createOpts, TRUE, - (IF_Db **)&m_pResultSetDb))) + if (RC_OK( rc = gv_pXFlmDbSystem->dbCreate( + m_szResultSetDibName, NULL, NULL, NULL, NULL, + &createOpts, TRUE, (IF_Db **)&m_pResultSetDb))) { break; } @@ -129,7 +128,6 @@ Desc: Close the database file and delete it. RCODE F_DbCheck::closeAndDeleteResultSetDb( void) { RCODE rc = NE_XFLM_OK; - F_DbSystem dbSystem; if (m_pResultSetDb) { @@ -141,7 +139,8 @@ RCODE F_DbCheck::closeAndDeleteResultSetDb( void) m_pResultSetDb = NULL; } - if (RC_BAD( rc = dbSystem.dbRemove( m_szResultSetDibName, NULL, NULL, TRUE))) + if (RC_BAD( rc = gv_pXFlmDbSystem->dbRemove( + m_szResultSetDibName, NULL, NULL, TRUE))) { goto Exit; } @@ -286,9 +285,8 @@ RCODE F_DbCheck::dbCheck( FLMBOOL bAllowLimitedMode = ( uiFlags & XFLM_ALLOW_LIMITED_MODE) ? TRUE : FALSE; - F_DbSystem dbSystem; - if (RC_BAD( rc = dbSystem.dbOpen( pszDbFileName, pszDataDir, + if (RC_BAD( rc = gv_pXFlmDbSystem->dbOpen( pszDbFileName, pszDataDir, pszRflDir, pszPassword, bAllowLimitedMode, (IF_Db **)&m_pDb))) { goto Exit; @@ -453,7 +451,7 @@ Begin_Check: Exit: if ((m_bPhysicalCorrupt || m_bIndexCorrupt) && - !F_DbSystem::_errorIsFileCorrupt( rc)) + !gv_pXFlmDbSystem->errorIsFileCorrupt( rc)) { rc = RC_SET( NE_XFLM_DATA_ERROR); } diff --git a/xflaim/src/flchktr.cpp b/xflaim/src/flchktr.cpp index 6de31a8..6384594 100644 --- a/xflaim/src/flchktr.cpp +++ b/xflaim/src/flchktr.cpp @@ -82,7 +82,7 @@ RCODE F_DbCheck::blkRead( // If we didn't get a corruption error, jump to exit. - if( !F_DbSystem::_errorIsFileCorrupt( rc)) + if( !gv_pXFlmDbSystem->errorIsFileCorrupt( rc)) { goto Exit; } diff --git a/xflaim/src/flcreate.cpp b/xflaim/src/flcreate.cpp index 6f56d55..17dee2a 100644 --- a/xflaim/src/flcreate.cpp +++ b/xflaim/src/flcreate.cpp @@ -256,9 +256,7 @@ Exit: { if (bDatabaseCreated) { - F_DbSystem dbSystem; - - dbSystem.dbRemove( pszFilePath, pszDataDir, pszRflDir, TRUE); + gv_pXFlmDbSystem->dbRemove( pszFilePath, pszDataDir, pszRflDir, TRUE); } } else if( uiRflToken) diff --git a/xflaim/src/flindex.cpp b/xflaim/src/flindex.cpp index 5ba3630..1f80a06 100644 --- a/xflaim/src/flindex.cpp +++ b/xflaim/src/flindex.cpp @@ -1020,17 +1020,16 @@ Desc: Thread that will build an index in the background. FSTATIC RCODE flmBackgroundIndexBuildThrd( IF_Thread * pThread) { - RCODE rc = NE_XFLM_OK; - F_BKGND_IX * pBackgroundIx = (F_BKGND_IX *)pThread->getParm1(); - F_Db * pDb = NULL; - FLMBOOL bForcedShutdown = FALSE; - FLMUINT uiIndexNum; - char szMsg [128]; - FLMINT iErrorLine = 0; - F_DbSystem dbSystem; + RCODE rc = NE_XFLM_OK; + F_BKGND_IX * pBackgroundIx = (F_BKGND_IX *)pThread->getParm1(); + F_Db * pDb = NULL; + FLMBOOL bForcedShutdown = FALSE; + FLMUINT uiIndexNum; + char szMsg [128]; + FLMINT iErrorLine = 0; pThread->setThreadStatus( FLM_THREAD_STATUS_INITIALIZING); - + Loop_Again: rc = NE_XFLM_OK; @@ -1047,7 +1046,7 @@ Loop_Again: goto Exit; } - if( RC_BAD( rc = dbSystem.internalDbOpen( + if( RC_BAD( rc = gv_pXFlmDbSystem->internalDbOpen( pBackgroundIx->pDatabase, &pDb))) { @@ -1119,7 +1118,7 @@ Exit: pThread->setParm1( NULL); f_mutexUnlock( gv_XFlmSysData.hShareMutex); f_free( &pBackgroundIx); - + return( rc); } diff --git a/xflaim/src/flopen.cpp b/xflaim/src/flopen.cpp index 8b8221d..c86ca26 100644 --- a/xflaim/src/flopen.cpp +++ b/xflaim/src/flopen.cpp @@ -275,7 +275,7 @@ Desc: Returns the length of the base part of a database name. If the name ends with a '.' or ".db", this will not be included in the returned length. ****************************************************************************/ -void F_DbSystem::getDbBasePath( +void flmGetDbBasePath( char * pszBaseDbName, const char * pszDbName, FLMUINT * puiBaseDbNameLen) diff --git a/xflaim/src/flverify.cpp b/xflaim/src/flverify.cpp index a7cd317..429d9c1 100644 --- a/xflaim/src/flverify.cpp +++ b/xflaim/src/flverify.cpp @@ -1180,7 +1180,6 @@ RCODE F_DbCheck::verifyBTrees( char szTmpIoPath [F_PATH_MAX_SIZE]; char szBaseName [F_FILENAME_SIZE]; F_NodeVerifier * pNodeVerifier = NULL; - F_DbSystem dbSystem; F_BLK_HDR * pBlkHdr = NULL; F_CachedBlock * pSCache = NULL; @@ -1197,7 +1196,7 @@ RCODE F_DbCheck::verifyBTrees( // szTmpIoPath is the directory where the result sets containing // node data will be stored. - if (RC_BAD( rc = dbSystem.getTempDir( szTmpIoPath))) + if (RC_BAD( rc = gv_pXFlmDbSystem->getTempDir( szTmpIoPath))) { if (rc == NE_FLM_IO_PATH_NOT_FOUND || rc == NE_FLM_IO_INVALID_FILENAME) diff --git a/xflaim/src/fqsort.cpp b/xflaim/src/fqsort.cpp index c50aac7..5a96eae 100644 --- a/xflaim/src/fqsort.cpp +++ b/xflaim/src/fqsort.cpp @@ -464,15 +464,13 @@ F_QueryResultSet::~F_QueryResultSet() } if (m_pResultSetDb) { - F_DbSystem dbSystem; - if (m_pResultSetDb->getTransType() != XFLM_NO_TRANS) { m_pResultSetDb->transAbort(); } m_pResultSetDb->Release(); m_pResultSetDb = NULL; - (void)dbSystem.dbRemove( m_szResultSetDibName, NULL, NULL, TRUE); + gv_pXFlmDbSystem->dbRemove( m_szResultSetDibName, NULL, NULL, TRUE); } if (m_hMutex != F_MUTEX_NULL) @@ -490,7 +488,6 @@ RCODE F_QueryResultSet::initResultSet( { RCODE rc = NE_XFLM_OK; XFLM_CREATE_OPTS createOpts; - F_DbSystem dbSystem; FLMUINT uiNum = (FLMUINT)this; flmAssert( !m_pResultSetDb); @@ -509,8 +506,9 @@ RCODE F_QueryResultSet::initResultSet( // Generate a random file name f_sprintf( m_szResultSetDibName, "%x.db", (unsigned)uiNum); - if (RC_OK( rc = dbSystem.dbCreate( m_szResultSetDibName, NULL, NULL, - NULL, NULL, &createOpts, TRUE, (IF_Db **)&m_pResultSetDb))) + if (RC_OK( rc = gv_pXFlmDbSystem->dbCreate( m_szResultSetDibName, + NULL, NULL, NULL, NULL, &createOpts, + TRUE, (IF_Db **)&m_pResultSetDb))) { break; } diff --git a/xflaim/src/fquery.cpp b/xflaim/src/fquery.cpp index 379e18e..6afcc8d 100644 --- a/xflaim/src/fquery.cpp +++ b/xflaim/src/fquery.cpp @@ -13682,7 +13682,6 @@ Desc: Allocate a result set for duplicate checking. RCODE F_Query::allocDupCheckSet( void) { RCODE rc = NE_XFLM_OK; - F_DbSystem dbSystem; char szTmpDir [F_PATH_MAX_SIZE]; if (m_pDocIdSet) @@ -13696,7 +13695,7 @@ RCODE F_Query::allocDupCheckSet( void) rc = RC_SET( NE_XFLM_MEM); goto Exit; } - if (RC_BAD( rc = dbSystem.getTempDir( szTmpDir))) + if (RC_BAD( rc = gv_pXFlmDbSystem->getTempDir( szTmpDir))) { if (rc == NE_FLM_IO_PATH_NOT_FOUND) { diff --git a/xflaim/src/fscursor.cpp b/xflaim/src/fscursor.cpp index 2d79094..8d5a612 100644 --- a/xflaim/src/fscursor.cpp +++ b/xflaim/src/fscursor.cpp @@ -124,7 +124,6 @@ Desc: Allocate a result set for duplicate checking. RCODE FSIndexCursor::allocDupCheckSet( void) { RCODE rc = NE_XFLM_OK; - F_DbSystem dbSystem; char szTmpDir [F_PATH_MAX_SIZE]; // If it is not a compound index, no need for a result set. @@ -143,7 +142,7 @@ RCODE FSIndexCursor::allocDupCheckSet( void) rc = RC_SET( NE_XFLM_MEM); goto Exit; } - if (RC_BAD( rc = dbSystem.getTempDir( szTmpDir))) + if (RC_BAD( rc = gv_pXFlmDbSystem->getTempDir( szTmpDir))) { if (rc == NE_FLM_IO_PATH_NOT_FOUND) { diff --git a/xflaim/src/fslfileu.cpp b/xflaim/src/fslfileu.cpp index e85962c..a1cb2d2 100644 --- a/xflaim/src/fslfileu.cpp +++ b/xflaim/src/fslfileu.cpp @@ -2618,35 +2618,24 @@ RCODE F_Database::maintenanceThread( { RCODE rc = NE_XFLM_OK; F_Database * pDatabase = (F_Database *)pThread->getParm1(); - F_Db * pDb; - F_DOMNode * pDoc; - F_DOMNode * pNextDoc; + F_Db * pDb = NULL; + F_DOMNode * pDoc = NULL; + F_DOMNode * pNextDoc = NULL; FLMUINT64 ui64DocId; FLMUINT64 ui64TmpTransId; FLMUINT64 ui64SweepTransId; FLMUINT uiNameId; FLMBOOL bStartedTrans; FLMBOOL bShutdown; - F_DbSystem * pDbSystem = NULL; Retry: - rc = NE_XFLM_OK; - pDb = NULL; - pDoc = NULL; - pNextDoc = NULL; bStartedTrans = FALSE; bShutdown = FALSE; - if( (pDbSystem = f_new F_DbSystem) == NULL) - { - rc = RC_SET( NE_XFLM_MEM); - goto Exit; - } - pThread->setThreadStatus( FLM_THREAD_STATUS_INITIALIZING); - if( RC_BAD( rc = pDbSystem->internalDbOpen( pDatabase, &pDb))) + if( RC_BAD( rc = gv_pXFlmDbSystem->internalDbOpen( pDatabase, &pDb))) { // If the file is being closed, this is not an error. @@ -2655,10 +2644,9 @@ Retry: rc = NE_XFLM_OK; bShutdown = TRUE; } + goto Exit; } - pDbSystem->Release(); - pDbSystem = NULL; for( ;;) { @@ -2816,19 +2804,16 @@ Exit: pThread->setThreadStatus( FLM_THREAD_STATUS_TERMINATING); - if( pDbSystem) - { - pDbSystem->Release(); - } - if( pDoc) { pDoc->Release(); + pDoc = NULL; } if( pNextDoc) { pNextDoc->Release(); + pNextDoc = NULL; } if( bStartedTrans) diff --git a/xflaim/src/fsuperfl.cpp b/xflaim/src/fsuperfl.cpp index 40058eb..73233db 100644 --- a/xflaim/src/fsuperfl.cpp +++ b/xflaim/src/fsuperfl.cpp @@ -111,7 +111,7 @@ RCODE F_SuperFileHdl::setup( f_memcpy( m_pszDbFileName, pszDbFileName, uiNameLen + 1); m_pszDataFileNameBase = m_pszDbFileName + uiNameLen + 1; - F_DbSystem::getDbBasePath( m_pszDataFileNameBase, szDir, &m_uiDataExtOffset); + flmGetDbBasePath( m_pszDataFileNameBase, szDir, &m_uiDataExtOffset); m_uiExtOffset = uiNameLen - (uiDataNameLen - m_uiDataExtOffset); } else @@ -123,7 +123,7 @@ RCODE F_SuperFileHdl::setup( f_memcpy( m_pszDbFileName, pszDbFileName, uiNameLen + 1); m_pszDataFileNameBase = m_pszDbFileName + uiNameLen + 1; - F_DbSystem::getDbBasePath( m_pszDataFileNameBase, + flmGetDbBasePath( m_pszDataFileNameBase, m_pszDbFileName, &m_uiDataExtOffset); m_uiExtOffset = m_uiDataExtOffset; } diff --git a/xflaim/src/fsysdata.cpp b/xflaim/src/fsysdata.cpp index bb78c05..6d9ef87 100644 --- a/xflaim/src/fsysdata.cpp +++ b/xflaim/src/fsysdata.cpp @@ -48,8 +48,9 @@ #define FLM_MAX_CACHE_SIZE (~((FLMUINT)0)) #endif -FLMATOMIC F_DbSystem::m_flmSysSpinLock = 0; -FLMUINT F_DbSystem::m_uiFlmSysStartupCount = 0; +static FLMATOMIC gv_flmSysSpinLock = 0; +static FLMBOOL gv_bFlmStarted = FALSE; +static FLMBOOL gv_bToolkitStarted = FALSE; FSTATIC RCODE flmGetCacheBytes( FLMUINT uiPercent, @@ -82,6 +83,10 @@ FSTATIC void flmGetUintParam( FLMUINT * puiUint, IF_IniFile * pIniFile); +FSTATIC void lockSysData( void); + +FSTATIC void unlockSysData( void); + void flmGetBoolParam( const char * pszParamName, FLMBOOL uiDefaultValue, @@ -92,8 +97,6 @@ FSTATIC RCODE flmGetIniFileName( FLMBYTE * pszIniFileName, FLMUINT uiBufferSz); -FLMBOOL gv_bToolkitStarted = FALSE; - /**************************************************************************** Desc: This routine allocates and initializes a hash table. ****************************************************************************/ @@ -1589,11 +1592,9 @@ Desc: Lock the system data structure for access - called only by startup and shutdown. NOTE: On platforms that do not support atomic exchange this is less than perfect - won't handle tight race conditions. ***************************************************************************/ -void F_DbSystem::lockSysData( void) +void lockSysData( void) { - // Obtain the spin lock - - while( f_atomicExchange( &m_flmSysSpinLock, 1) == 1) + while( f_atomicExchange( &gv_flmSysSpinLock, 1) == 1) { f_sleep( 10); } @@ -1603,9 +1604,9 @@ void F_DbSystem::lockSysData( void) Desc: Unlock the system data structure for access - called only by startup and shutdown. ***************************************************************************/ -void F_DbSystem::unlockSysData( void) +void unlockSysData( void) { - (void)f_atomicExchange( &m_flmSysSpinLock, 0); + (void)f_atomicExchange( &gv_flmSysSpinLock, 0); } /**************************************************************************** @@ -1792,6 +1793,26 @@ Exit: return( rc); } +/**************************************************************************** +Desc: +****************************************************************************/ +F_DbSystem::F_DbSystem() +{ + m_refCnt = 1; + LockModule(); +} + +/**************************************************************************** +Desc: +****************************************************************************/ +F_DbSystem::~F_DbSystem() +{ + lockSysData(); + cleanup(); + unlockSysData(); + UnlockModule(); +} + /**************************************************************************** Desc : Startup the database engine. Notes: This routine may be called multiple times. However, if that is done @@ -1807,16 +1828,10 @@ RCODE F_DbSystem::init( void) int iHandle; #endif - lockSysData(); + flmAssert( !gv_bFlmStarted); - // See if FLAIM has already been started. If so, - // we are done. + // Start the toolkit - if (++m_uiFlmSysStartupCount > 1) - { - goto Exit; - } - if( RC_BAD( rc = ftkStartup())) { goto Exit; @@ -1827,7 +1842,7 @@ RCODE F_DbSystem::init( void) f_memset( &gv_XFlmSysData, 0, sizeof( FLMSYSDATA)); gv_XFlmSysData.uiMaxFileSize = f_getMaxFileSize(); - + // Get the thread manager if( RC_BAD( rc = FlmGetThreadMgr( &gv_XFlmSysData.pThreadMgr))) @@ -2085,24 +2100,9 @@ Exit: cleanup(); } - unlockSysData(); return( rc); } -/**************************************************************************** -Desc: Shuts the database engine down. -Notes: This routine allows itself to be called multiple times, even before - init() is called or if init() fails. May not handle race - conditions very well on platforms that do not support atomic - exchange. -****************************************************************************/ -void F_DbSystem::exit( void) -{ - lockSysData(); - cleanup(); - unlockSysData(); -} - /************************************************************************ Desc : Cleans up - assumes that the spin lock has already been obtained. This allows it to be called directly from @@ -2112,30 +2112,10 @@ void F_DbSystem::cleanup( void) { FLMUINT uiCnt; FLMINT iEventCategory; - - // NOTE: We are checking and decrementing a global variable here. - // However, on platforms that properly support atomic exchange, - // we are OK, because the caller has obtained a spin lock before - // calling this routine, so we are guaranteed to be the only thread - // executing this code at this point. On platforms that don't - // support atomic exchange, our spin lock will be less reliable for - // really tight race conditions. But in reality, nobody should be - // calling FlmStartup and FlmShutdown in race conditions like that - // anyway. We are only doing the spin lock stuff to try and be - // nice about it if they are. - - // This check allows FlmShutdown to be called before calling - // FlmStartup, or even if FlmStartup fails. - - if (!m_uiFlmSysStartupCount) - { - return; - } - - // If we decrement the count and it doesn't go to zero, we are not - // ready to do cleanup yet. - - if (--m_uiFlmSysStartupCount > 0) + + // If the toolkit wasn't started, nothing was done in XFLAIM + + if( !gv_bToolkitStarted) { return; } @@ -2395,6 +2375,8 @@ void F_DbSystem::cleanup( void) ftkShutdown(); gv_bToolkitStarted = FALSE; } + + gv_bFlmStarted = FALSE; } /**************************************************************************** @@ -3251,14 +3233,11 @@ Desc: Increment the database system use count ****************************************************************************/ FLMINT FLMAPI F_DbSystem::AddRef(void) { - FLMINT iRefCnt = f_atomicInc( &m_refCnt); - - // Note: We don't bother with a call to LockModule() here because - // it's done in the constructor. In fact, it's unlikely that - // this AddRef() will ever be called, because the constructor - // already sets the ref count to 1 and it's unlikely that there - // will be to references to the same DbSystem object... - + FLMINT iRefCnt; + + iRefCnt = f_atomicInc( &m_refCnt); + LockModule(); + return( iRefCnt); } @@ -3267,13 +3246,16 @@ Desc: Decrement the database system use count ****************************************************************************/ FLMINT FLMAPI F_DbSystem::Release(void) { - FLMINT iRefCnt = f_atomicDec( &m_refCnt); + FLMINT iRefCnt; + + iRefCnt = f_atomicDec( &m_refCnt); if (iRefCnt == 0) { delete this; } + UnlockModule(); return( iRefCnt); } @@ -3283,14 +3265,41 @@ Desc: Allocates an F_DbSystem object for non-COM applications FLMEXP RCODE FLMAPI FlmAllocDbSystem( IF_DbSystem ** ppDbSystem) { + RCODE rc = NE_XFLM_OK; + F_DbSystem * pDbSystem = NULL; + flmAssert( ppDbSystem && *ppDbSystem == NULL); - - if( (*ppDbSystem = f_new F_DbSystem) == NULL) + lockSysData(); + + if( !gv_pXFlmDbSystem) { - return( RC_SET( NE_XFLM_MEM)); + if( (pDbSystem = f_new F_DbSystem) == NULL) + { + rc = RC_SET( NE_XFLM_MEM); + goto Exit; + } + + if( RC_BAD( rc = pDbSystem->init())) + { + goto Exit; + } + + gv_pXFlmDbSystem = pDbSystem; + pDbSystem = NULL; } + + *ppDbSystem = gv_pXFlmDbSystem; + (*ppDbSystem)->AddRef(); + +Exit: - return( NE_XFLM_OK); + if( pDbSystem) + { + pDbSystem->Release(); + } + + unlockSysData(); + return( rc); } /**************************************************************************** diff --git a/xflaim/src/rfl.cpp b/xflaim/src/rfl.cpp index 8ce2d6f..5a25131 100644 --- a/xflaim/src/rfl.cpp +++ b/xflaim/src/rfl.cpp @@ -437,11 +437,10 @@ RCODE rflGetDirAndPrefix( const char * pszRflDirIn, char * pszRflDirOut) { - RCODE rc = NE_XFLM_OK; - char szDbPath [F_PATH_MAX_SIZE]; - char szBaseName [F_FILENAME_SIZE]; - char szPrefix [F_FILENAME_SIZE]; - F_DbSystem dbSystem; + RCODE rc = NE_XFLM_OK; + char szDbPath [F_PATH_MAX_SIZE]; + char szBaseName [F_FILENAME_SIZE]; + char szPrefix [F_FILENAME_SIZE]; // Parse the database name into directory and base name @@ -453,7 +452,7 @@ RCODE rflGetDirAndPrefix( // Get the base path - F_DbSystem::getDbBasePath( szPrefix, szBaseName, NULL); + flmGetDbBasePath( szPrefix, szBaseName, NULL); // Determine the RFL directory. If one was // specified, it is whatever was specified. diff --git a/xflaim/src/xflaim.h b/xflaim/src/xflaim.h index 6be4582..07aa593 100644 --- a/xflaim/src/xflaim.h +++ b/xflaim/src/xflaim.h @@ -1273,30 +1273,12 @@ * intermittently or throughout the life of the database system. The class id for * this interface is CLSID_F_DbSystemFactory and the interface id is IID_IF_DbSystem. */ - flminterface IF_DbSystem : public F_Object + flminterface IF_DbSystem : public IF_Object { - /** - * @brief Initializes the database system object. - * - * The init method is used to startup the database system engine. This routine may - * be called multiple times within the same process space. For each time the init - * method is called, there must be a corresponding call to exit. The database engine - * will only shut down on the last call to exit. - */ - virtual RCODE FLMAPI init( void) = 0; - virtual RCODE FLMAPI updateIniFile( const char * pszParamName, const char * pszValue) = 0; - /** - * @brief Shuts down the database system and closes any open databases. - * - * The exit method is used to shutdown the database system engine. This routine allows - * itself to be called multiple times, even before init is called or if the call to init fails. - */ - virtual void FLMAPI exit() = 0; - /** * @brief Return an IF_FileSystem object for performing file system operations. * @@ -2481,11 +2463,6 @@ XFLM_EXPORT_INDENT_DATA = 0x03 // Indent Data - this changes the data } eExportFormatType; - /* -------------------------------------------------------------------- - * An alternative way to get a DbSystem object when not - * using COM. - * -------------------------------------------------------------------- */ - FLMEXP RCODE FLMAPI FlmAllocDbSystem( IF_DbSystem ** ppDbSystem);