annotate liszt.cpp @ 755:37c2b9cce23a
multiprobeLSH
Adding mkc_lsh_update branch, trunk candidate with improved LSH: merged trunk 1095 and branch multiprobe_lsh
author |
mas01mc |
date |
Thu, 25 Nov 2010 13:42:40 +0000 |
parents |
342822c2d49a |
children |
e18843dc0aea |
rev |
line source |
mas01cr@498
|
1 #include "audioDB.h"
|
mas01cr@498
|
2
|
mas01cr@498
|
3 void audioDB::liszt(const char* dbName, unsigned offset, unsigned numLines, adb__lisztResponse* adbLisztResponse){
|
mas01cr@498
|
4 if(!dbH) {
|
mas01cr@498
|
5 initTables(dbName, 0);
|
mas01cr@498
|
6 }
|
mas01cr@498
|
7
|
mas01cr@498
|
8 assert(trackTable && fileTable);
|
mas01cr@498
|
9
|
mas01cr@498
|
10 if(offset>dbH->numFiles){
|
mas01cr@498
|
11 char tmpStr[MAXSTR];
|
mas01cr@498
|
12 sprintf(tmpStr, "numFiles=%u, lisztOffset=%u", dbH->numFiles, offset);
|
mas01cr@498
|
13 error("listKeys offset out of range", tmpStr);
|
mas01cr@498
|
14 }
|
mas01cr@498
|
15
|
mas01cr@498
|
16 if(!adbLisztResponse){
|
mas01cr@498
|
17 for(Uns32T k=0; k<numLines && offset+k<dbH->numFiles; k++){
|
mas01cr@498
|
18 fprintf(stdout, "[%d] %s (%d)\n", offset+k, fileTable+(offset+k)*O2_FILETABLE_ENTRY_SIZE, trackTable[offset+k]);
|
mas01cr@498
|
19 }
|
mas01cr@498
|
20 }
|
mas01cr@498
|
21 else{
|
mas01cr@498
|
22 adbLisztResponse->result.Rkey = new char*[numLines];
|
mas01cr@498
|
23 adbLisztResponse->result.Rlen = new unsigned int[numLines];
|
mas01cr@498
|
24 Uns32T k = 0;
|
mas01cr@498
|
25 for( ; k<numLines && offset+k<dbH->numFiles; k++){
|
mas01cr@498
|
26 adbLisztResponse->result.Rkey[k] = new char[MAXSTR];
|
mas01cr@498
|
27 snprintf(adbLisztResponse->result.Rkey[k], O2_MAXFILESTR, "%s", fileTable+(offset+k)*O2_FILETABLE_ENTRY_SIZE);
|
mas01cr@498
|
28 adbLisztResponse->result.Rlen[k] = trackTable[offset+k];
|
mas01cr@498
|
29 }
|
mas01cr@498
|
30 adbLisztResponse->result.__sizeRkey = k;
|
mas01cr@498
|
31 adbLisztResponse->result.__sizeRlen = k;
|
mas01cr@498
|
32 }
|
mas01cr@498
|
33
|
mas01cr@498
|
34 }
|