amxmodx/dlls/arrayx/CKeytable.cpp

66 lines
1.1 KiB
C++
Raw Normal View History

#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;
}