static void
usage() {
puts("Usage:");
- puts("./sfxtest -d datafile [-b| [-a addondatafile] [-l | -p | -r | -g] [-n]] [-q]");
+ puts("./sfxtest -d datafile [-b| [-a addondatafile] [-P [-R] [-D] [-l | -p | -r | -g] [-n]] [-q]");
puts("Detailed description:");
puts(" Binary search");
puts(" -q - quiet (no output)");
puts(" Optimal suffix search");
- puts(" ./sfxtest -d datafile [-a addondatafile] [-l | -p | -r | -g] [-n] [-q]");
+ puts(" ./sfxtest -d datafile [-a addondatafile] [-P [-R]] [-D] [-l | -p | -r | -g] [-n] [-q]");
puts(" -a addondatafile - addon file data for loading");
puts(" -g - histogramm mode");
puts(" -l - listing mode");
puts(" -p - prefix search mode");
puts(" -r - range search mode");
puts(" -n - enumerate entries");
+ puts(" -P - use plain memory");
+ puts(" -R - use plain memory");
+ puts(" -D - dump/load tree");
puts(" -q - quiet (no output)");
exit(1);
FILE *in;
char buf[4096];
double sumtime=0.0;
- int structsize=0, list=0, prefix=0, range=0, enumerate=0,gmode=0;
+ int structsize=0, list=0, prefix=0, range=0, enumerate=0,gmode=0, plain=0, revert=0, dump=0;
char *addondatafile=NULL;
int len=4096, curlen=0, checked=0, success=0;
char **data;
void *res;
- while ((i = getopt(argn, argv, "pd:bqha:lrng")) != EOF) {
+ while ((i = getopt(argn, argv, "pd:bqha:lrngPRD")) != EOF) {
switch(i) {
case 'a':
addondatafile=optarg;
case 'q':
verbose=0;
break;
+ case 'P':
+ plain=1;
+ break;
+ case 'R':
+ revert=1;
+ break;
+ case 'D':
+ dump=1;
+ break;
case 'h':
default:
usage();
}
if (!datafile) usage();
-
+
opentlog(TL_OPEN_STDERR|TL_OPEN_SYSLOG|TL_OPEN_FILE, TL_INFO, "./sfxtest.log");
if ( (in=fopen(datafile,"r"))==NULL )
tlog(TL_CRIT|TL_EXIT,"Beda with %s", datafile);
tlog(TL_INFO,"Memory allocated: %.2fMb", ((float)info.totalen)/(1024.0*1024.0));
tlog(TL_INFO,"Number of nodes: %d", info.nnodes);
curlen+=cntadd;
+ }
+
+ if ( plain && !gmode ) {
+ SFSMakePlain(&info, NULL);
+ if ( revert )
+ tfree( SFSRevertPlain(&info) );
+ }
+
+ if ( dump ) {
+ SFSWriteDump(&info, "./sfxtest.dump");
+ SFSFree(&info,NULL);
+ SFSReadDump(&info, "./sfxtest.dump");
}
if (list) {