annotate libtests/0001/prog1.c @ 548:e18843dc0aea

Implement a rudimentary API for audioDB::liszt The API is rudimentary because we've dropped support for the incremental retrieval of tracks and their number of vectors (at the API level; the SOAP and command-line support is still there -- no changes should be visible). This is potentially bad for the large-scale databases, of course; one million tracks will take of the order of 16MB of RAM, more if I'm unlucky about how std::string.c_str() is implemented. Both this liszt operation and querying (and sampling, forthcoming...) would benefit from a `cursor-like' interface to retrieval results: for an API like that, instead of getting a struct with the data there, you get a cookie with which you can ask the database for successive results. This would be neat for all sorts of reasons. In the meantime, at least this change fixes SOAP memory leaks related to liszt. Make liszt.o part of LIBOBJS rather than ordinary OBJS, so that the liszt functionality is actually compiled into the library. Add a test for this library functionality; also modify the command-line test file to run the SOAP server on its own port.
author mas01cr
date Wed, 11 Feb 2009 12:38:03 +0000
parents 342822c2d49a
children
rev   line source
mas01cr@498 1 #include "audioDB_API.h"
mas01cr@498 2 #include "test_utils_lib.h"
mas01ik@355 3
mas01cr@498 4 int main(int argc, char **argv) {
mas01cr@498 5 adb_t *adb;
mas01cr@498 6 struct stat st;
mas01ik@355 7
mas01cr@498 8 clean_remove_db(TESTDB);
mas01ik@355 9
mas01cr@498 10 adb = audiodb_open(TESTDB, O_RDWR);
mas01cr@498 11 if(adb)
mas01cr@498 12 return 1;
mas01ik@355 13
mas01cr@498 14 adb = audiodb_create(TESTDB, 0, 0, 0);
mas01cr@498 15 if (!adb)
mas01cr@498 16 return 1;
mas01ik@355 17
mas01cr@498 18 if(stat(TESTDB, &st))
mas01cr@498 19 return 1;
mas01ik@355 20
mas01cr@498 21 audiodb_close(adb);
mas01ik@355 22
mas01cr@498 23 adb = audiodb_create(TESTDB, 0, 0, 0);
mas01cr@498 24 if(adb)
mas01cr@498 25 return 1;
mas01ik@355 26
mas01cr@498 27 adb = audiodb_open(TESTDB, O_RDONLY);
mas01cr@498 28 if (!adb)
mas01cr@498 29 return 1;
mas01ik@355 30
mas01cr@498 31 audiodb_close(adb);
mas01ik@355 32
mas01cr@498 33 return 104;
mas01ik@355 34 }