Changes to support B-Tree result sets.

git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@414 0109f412-320b-0410-ab79-c3e0c5ffbbe6
This commit is contained in:
ahodgkinson
2006-05-17 22:37:01 +00:00
parent e54b36f8a5
commit 6574200e15
7 changed files with 2923 additions and 1983 deletions

View File

@@ -534,22 +534,21 @@ private:
/*****************************************************************************
Desc:
*****************************************************************************/
#if 0
class F_BtResultSet : public IF_BtResultSet
class F_BTreeResultSet : public IF_BTreeResultSet
{
public:
F_BtResultSet( void)
F_BTreeResultSet( void)
{
m_pBtree = NULL;
m_pBTree = NULL;
m_pCompare = NULL;
}
virtual ~F_BtResultSet()
virtual ~F_BTreeResultSet()
{
if( m_pBtree)
if( m_pBTree)
{
m_pBtree->Release();
m_pBTree->Release();
}
if( m_pCompare)
@@ -558,8 +557,7 @@ public:
}
}
RCODE FLMAPI setupResultSet(
const char * pszPath,
RCODE setupResultSet(
IF_ResultSetCompare * pCompare);
RCODE FLMAPI addEntry(
@@ -627,10 +625,9 @@ public:
private:
IF_Btree * m_pBtree;
IF_BTree * m_pBTree;
IF_ResultSetCompare * m_pCompare;
};
#endif
/*****************************************************************************
Desc:
@@ -3868,8 +3865,26 @@ Exit:
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::addEntry(
RCODE F_BTreeResultSet::setupResultSet(
IF_ResultSetCompare * pCompare)
{
if( m_pCompare)
{
m_pCompare->Release();
}
if( (m_pCompare = pCompare) != NULL)
{
m_pCompare->AddRef();
}
return( NE_FLM_OK);
}
/****************************************************************************
Desc:
****************************************************************************/
RCODE F_BTreeResultSet::addEntry(
FLMBYTE * pucKey,
FLMUINT uiKeyLength,
FLMBYTE * pucEntry,
@@ -3879,7 +3894,7 @@ RCODE F_BtResultSet::addEntry(
f_assert( uiKeyLength <= FLM_MAX_KEY_SIZE);
if( RC_BAD( rc = m_pBtree->btInsertEntry( pucKey, uiKeyLength,
if( RC_BAD( rc = m_pBTree->btInsertEntry( pucKey, uiKeyLength,
uiKeyLength, pucEntry, uiEntryLength, TRUE, TRUE)))
{
if (rc == NE_FLM_NOT_UNIQUE)
@@ -3896,13 +3911,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::modifyEntry(
RCODE F_BTreeResultSet::modifyEntry(
FLMBYTE * pucKey,
FLMUINT uiKeyLength,
FLMBYTE * pucEntry,
@@ -3912,7 +3925,7 @@ RCODE F_BtResultSet::modifyEntry(
f_assert( uiKeyLength <= FLM_MAX_KEY_SIZE);
if( RC_BAD( rc = m_pBtree->btReplaceEntry( pucKey, uiKeyLength,
if( RC_BAD( rc = m_pBTree->btReplaceEntry( pucKey, uiKeyLength,
uiKeyLength, pucEntry, uiEntryLength, TRUE, TRUE)))
{
goto Exit;
@@ -3922,13 +3935,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::deleteEntry(
RCODE F_BTreeResultSet::deleteEntry(
FLMBYTE * pucKey,
FLMUINT uiKeyLength)
{
@@ -3936,7 +3947,7 @@ RCODE F_BtResultSet::deleteEntry(
f_assert( uiKeyLength <= FLM_MAX_KEY_SIZE);
if (RC_BAD( rc = m_pBtree->btRemoveEntry(
if (RC_BAD( rc = m_pBTree->btRemoveEntry(
pucKey, uiKeyLength, uiKeyLength)))
{
goto Exit;
@@ -3946,13 +3957,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::findEntry(
RCODE F_BTreeResultSet::findEntry(
FLMBYTE * pucKey,
FLMUINT uiKeyBufLen,
FLMUINT * puiKeyLen,
@@ -3965,7 +3974,7 @@ RCODE F_BtResultSet::findEntry(
f_assert( uiKeyBufLen <= FLM_MAX_KEY_SIZE);
if( RC_BAD( rc = m_pBtree->btLocateEntry( pucKey, uiKeyBufLen, puiKeyLen,
if( RC_BAD( rc = m_pBTree->btLocateEntry( pucKey, uiKeyBufLen, puiKeyLen,
FLM_EXACT, NULL, &uiLengthRV)))
{
goto Exit;
@@ -3973,7 +3982,7 @@ RCODE F_BtResultSet::findEntry(
if( pucBuffer)
{
if( RC_BAD( rc = m_pBtree->btGetEntry( pucKey, *puiKeyLen,
if( RC_BAD( rc = m_pBTree->btGetEntry( pucKey, *puiKeyLen,
pucBuffer, uiBufferLength, puiReturnLength)))
{
goto Exit;
@@ -3988,13 +3997,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::getCurrent(
RCODE F_BTreeResultSet::getCurrent(
FLMBYTE * pucKey,
FLMUINT uiKeyLength,
FLMBYTE * pucEntry,
@@ -4005,7 +4012,7 @@ RCODE F_BtResultSet::getCurrent(
f_assert( uiKeyLength <= FLM_MAX_KEY_SIZE);
if( RC_BAD( rc = m_pBtree->btGetEntry( pucKey, uiKeyLength,
if( RC_BAD( rc = m_pBTree->btGetEntry( pucKey, uiKeyLength,
pucEntry, uiEntryLength, puiReturnLength)))
{
goto Exit;
@@ -4015,13 +4022,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::getNext(
RCODE F_BTreeResultSet::getNext(
FLMBYTE * pucKey,
FLMUINT uiKeyBufLen,
FLMUINT * puiKeyLen,
@@ -4033,7 +4038,7 @@ RCODE F_BtResultSet::getNext(
f_assert( uiKeyBufLen <= FLM_MAX_KEY_SIZE);
if( RC_BAD( rc = m_pBtree->btNextEntry( pucKey, uiKeyBufLen, puiKeyLen,
if( RC_BAD( rc = m_pBTree->btNextEntry( pucKey, uiKeyBufLen, puiKeyLen,
puiReturnLength)))
{
goto Exit;
@@ -4041,7 +4046,7 @@ RCODE F_BtResultSet::getNext(
if( pucEntry)
{
if( RC_BAD( rc = m_pBtree->btGetEntry( pucKey, *puiKeyLen,
if( RC_BAD( rc = m_pBTree->btGetEntry( pucKey, *puiKeyLen,
pucEntry, uiEntryLength, puiReturnLength)))
{
goto Exit;
@@ -4052,13 +4057,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::getPrev(
RCODE F_BTreeResultSet::getPrev(
FLMBYTE * pucKey,
FLMUINT uiKeyBufLen,
FLMUINT * puiKeyLen,
@@ -4070,7 +4073,7 @@ RCODE F_BtResultSet::getPrev(
f_assert( uiKeyBufLen <= FLM_MAX_KEY_SIZE);
if( RC_BAD( rc = m_pBtree->btPrevEntry( pucKey, uiKeyBufLen, puiKeyLen,
if( RC_BAD( rc = m_pBTree->btPrevEntry( pucKey, uiKeyBufLen, puiKeyLen,
puiReturnLength)))
{
goto Exit;
@@ -4078,7 +4081,7 @@ RCODE F_BtResultSet::getPrev(
if( pucEntry)
{
if( RC_BAD( rc = m_pBtree->btGetEntry( pucKey, *puiKeyLen,
if( RC_BAD( rc = m_pBTree->btGetEntry( pucKey, *puiKeyLen,
pucEntry, uiEntryLength, puiReturnLength)))
{
goto Exit;
@@ -4089,13 +4092,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::getFirst(
RCODE F_BTreeResultSet::getFirst(
FLMBYTE * pucKey,
FLMUINT uiKeyBufLen,
FLMUINT * puiKeyLen,
@@ -4107,8 +4108,8 @@ RCODE F_BtResultSet::getFirst(
f_assert( uiKeyBufLen <= FLM_MAX_KEY_SIZE);
m_pBtree->btResetBtree();
if( RC_BAD( rc = m_pBtree->btFirstEntry( pucKey, uiKeyBufLen, puiKeyLen,
m_pBTree->btResetBtree();
if( RC_BAD( rc = m_pBTree->btFirstEntry( pucKey, uiKeyBufLen, puiKeyLen,
puiReturnLength)))
{
goto Exit;
@@ -4116,7 +4117,7 @@ RCODE F_BtResultSet::getFirst(
if( pucEntry)
{
if( RC_BAD( rc = m_pBtree->btGetEntry( pucKey, *puiKeyLen,
if( RC_BAD( rc = m_pBTree->btGetEntry( pucKey, *puiKeyLen,
pucEntry, uiEntryLength, puiReturnLength)))
{
goto Exit;
@@ -4127,13 +4128,11 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
****************************************************************************/
#if 0
RCODE F_BtResultSet::getLast(
RCODE F_BTreeResultSet::getLast(
FLMBYTE * pucKey,
FLMUINT uiKeyBufLen,
FLMUINT * puiKeyLen,
@@ -4145,7 +4144,7 @@ RCODE F_BtResultSet::getLast(
f_assert( uiKeyBufLen <= FLM_MAX_KEY_SIZE);
if( RC_BAD( rc = m_pBtree->btLastEntry( pucKey, uiKeyBufLen, puiKeyLen,
if( RC_BAD( rc = m_pBTree->btLastEntry( pucKey, uiKeyBufLen, puiKeyLen,
puiReturnLength)))
{
goto Exit;
@@ -4153,7 +4152,7 @@ RCODE F_BtResultSet::getLast(
if( pucEntry)
{
if( RC_BAD( rc = m_pBtree->btGetEntry( pucKey, *puiKeyLen,
if( RC_BAD( rc = m_pBTree->btGetEntry( pucKey, *puiKeyLen,
pucEntry, uiEntryLength, puiReturnLength)))
{
goto Exit;
@@ -4164,7 +4163,6 @@ Exit:
return( rc);
}
#endif
/****************************************************************************
Desc:
@@ -4179,3 +4177,37 @@ RCODE FLMAPI FlmAllocResultSet(
return( NE_FLM_OK);
}
/***************************************************************************
Desc:
****************************************************************************/
RCODE FLMAPI FlmAllocBTreeResultSet(
IF_ResultSetCompare * pCompare,
IF_BTreeResultSet ** ppBTreeResultSet)
{
RCODE rc = NE_FLM_OK;
F_BTreeResultSet * pBTreeResultSet = NULL;
if( (pBTreeResultSet = f_new F_BTreeResultSet) == NULL)
{
rc = RC_SET( NE_FLM_MEM);
goto Exit;
}
if( RC_BAD( rc = pBTreeResultSet->setupResultSet( pCompare)))
{
goto Exit;
}
*ppBTreeResultSet = pBTreeResultSet;
pBTreeResultSet = NULL;
Exit:
if( pBTreeResultSet)
{
pBTreeResultSet->Release();
}
return( rc);
}