66 lines
1.1 KiB
C++
66 lines
1.1 KiB
C++
|
#include "CKeytable.h"
|
||
|
|
||
|
void Keytable::ThrowIndexError( char* index, bool disable_check = false )
|
||
|
{
|
||
|
if(disable_check == true) return;
|
||
|
|
||
|
char error[50];
|
||
|
sprintf(error,"Index %s is not set.",index);
|
||
|
|
||
|
throw JudyEx(error,true);
|
||
|
}
|
||
|
|
||
|
void Keytable::ThrowSearchError(char* type)
|
||
|
{
|
||
|
char value[50];
|
||
|
sprintf(value,"Function attempted to search %s: Judy returned NULL value", type);
|
||
|
|
||
|
throw JudyEx(value,false);
|
||
|
}
|
||
|
|
||
|
char* Keytable::First( char* Start)
|
||
|
{
|
||
|
PPvoid_t index = JudySLFirst(Table, Start, PJE0);
|
||
|
if (index == NULL)
|
||
|
{
|
||
|
sprintf(Start,"dne");
|
||
|
ThrowSearchError("Type:First");
|
||
|
}
|
||
|
|
||
|
return Start;
|
||
|
}
|
||
|
|
||
|
char* Keytable::Next( char* Start)
|
||
|
{
|
||
|
PPvoid_t index = JudySLNext(Table, Start, PJE0);
|
||
|
if (index == NULL)
|
||
|
{
|
||
|
sprintf(Start,"dne");
|
||
|
ThrowSearchError("Type:Next");
|
||
|
}
|
||
|
return Start;
|
||
|
}
|
||
|
|
||
|
char* Keytable::Prev( char* Start)
|
||
|
{
|
||
|
PPvoid_t index = JudySLPrev(Table, Start, PJE0);
|
||
|
if (index == NULL)
|
||
|
{
|
||
|
sprintf(Start,"dne");
|
||
|
ThrowSearchError("Type:Prev");
|
||
|
}
|
||
|
|
||
|
return Start;
|
||
|
}
|
||
|
|
||
|
char* Keytable::Last( char* Start)
|
||
|
{
|
||
|
PPvoid_t index = JudySLLast(Table, Start, PJE0);
|
||
|
if (index == NULL)
|
||
|
{
|
||
|
sprintf(Start,"dne");
|
||
|
ThrowSearchError("Type:Last");
|
||
|
}
|
||
|
|
||
|
return Start;
|
||
|
}
|