Mercurial > hg > audiodb
changeset 345:30384a82983a
Quieten newer compilers with MORE CONST CORRECTNESS.
(except, haha, gengetopt doesn't generate const-correct function
prototypes. Happy happy joy joy. Put in an explicit cast when calling
cmdline_parser().)
Adjust gengetopt.in and Makefile to support both old (2.19) and new
(2.22) versions of gengetopt. This only really means that we've lost -H
as a help switch; --help still works.
author | mas01cr |
---|---|
date | Wed, 08 Oct 2008 11:06:11 +0000 |
parents | 223a5994a962 |
children | 725e4fd5208d |
files | Makefile audioDB.cpp audioDB.h gengetopt.in soap.cpp |
diffstat | 5 files changed, 29 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Tue Oct 07 21:03:26 2008 +0000 +++ b/Makefile Wed Oct 08 11:06:11 2008 +0000 @@ -40,9 +40,12 @@ %.o: %.cpp audioDB.h adb.nsmap cmdline.h reporter.h ReporterBase.h lshlib.h g++ -c ${CFLAGS} ${GSOAP_INCLUDE} ${GSL_INCLUDE} -Wall $< +cmdline.o: cmdline.c cmdline.h + gcc -c $< + OBJS=insert.o create.o common.o dump.o query.o soap.o sample.o audioDB.o index.o lshlib.o -${EXECUTABLE}: ${OBJS} soapServer.cpp soapClient.cpp soapC.cpp cmdline.c +${EXECUTABLE}: ${OBJS} soapServer.cpp soapClient.cpp soapC.cpp cmdline.o g++ -o ${EXECUTABLE} ${CFLAGS} ${GSL_INCLUDE} ${LIBGSL} ${GSOAP_INCLUDE} $^ ${GSOAP_CPP} clean:
--- a/audioDB.cpp Tue Oct 07 21:03:26 2008 +0000 +++ b/audioDB.cpp Wed Oct 08 11:06:11 2008 +0000 @@ -22,7 +22,7 @@ return ( (a.trackID==b.trackID) && (a.qpos==b.qpos) && (a.spos==b.spos) ); } -audioDB::audioDB(const unsigned argc, char* const argv[]): O2_AUDIODB_INITIALIZERS +audioDB::audioDB(const unsigned argc, const char *const argv[]): O2_AUDIODB_INITIALIZERS { if(processArgs(argc, argv)<0){ printf("No command found.\n"); @@ -97,7 +97,7 @@ error("Unrecognized command",command); } -audioDB::audioDB(const unsigned argc, char* const argv[], adb__queryResponse *adbQueryResponse): O2_AUDIODB_INITIALIZERS +audioDB::audioDB(const unsigned argc, const char *const argv[], adb__queryResponse *adbQueryResponse): O2_AUDIODB_INITIALIZERS { try { isServer = 1; // Set to make errors report over SOAP @@ -113,7 +113,7 @@ } } -audioDB::audioDB(const unsigned argc, char* const argv[], adb__statusResponse *adbStatusResponse): O2_AUDIODB_INITIALIZERS +audioDB::audioDB(const unsigned argc, const char* const argv[], adb__statusResponse *adbStatusResponse): O2_AUDIODB_INITIALIZERS { try { isServer = 1; // Set to make errors report over SOAP @@ -129,7 +129,7 @@ } } -audioDB::audioDB(const unsigned argc, char* const argv[], adb__lisztResponse *adbLisztResponse): O2_AUDIODB_INITIALIZERS +audioDB::audioDB(const unsigned argc, const char *const argv[], adb__lisztResponse *adbLisztResponse): O2_AUDIODB_INITIALIZERS { try { isServer = 1; // Set to make errors report over SOAP @@ -193,7 +193,7 @@ cleanup(); } -int audioDB::processArgs(const unsigned argc, char* const argv[]){ +int audioDB::processArgs(const unsigned argc, const char *const argv[]){ if(argc<2){ cmdline_parser_print_version (); @@ -206,7 +206,10 @@ exit(0); } - if (cmdline_parser (argc, argv, &args_info) != 0) + /* KLUDGE: gengetopt generates a function which is not completely + const-clean in its declaration. We cast argv here to keep the + compiler happy. -- CSR, 2008-10-08 */ + if (cmdline_parser (argc, (char *const *) argv, &args_info) != 0) error("Error parsing command line"); if(args_info.help_given){
--- a/audioDB.h Tue Oct 07 21:03:26 2008 +0000 +++ b/audioDB.h Wed Oct 08 11:06:11 2008 +0000 @@ -318,14 +318,14 @@ void prefix_name(char** const name, const char* prefix); public: - audioDB(const unsigned argc, char* const argv[]); - audioDB(const unsigned argc, char* const argv[], adb__queryResponse *adbQueryResponse); - audioDB(const unsigned argc, char* const argv[], adb__statusResponse *adbStatusResponse); - audioDB(const unsigned argc, char* const argv[], adb__lisztResponse *adbLisztResponse); + audioDB(const unsigned argc, const char *const argv[]); + audioDB(const unsigned argc, const char *const argv[], adb__queryResponse *adbQueryResponse); + audioDB(const unsigned argc, const char *const argv[], adb__statusResponse *adbStatusResponse); + audioDB(const unsigned argc, const char *const argv[], adb__lisztResponse *adbLisztResponse); void cleanup(); ~audioDB(); - int processArgs(const unsigned argc, char* const argv[]); + int processArgs(const unsigned argc, const char* const argv[]); void get_lock(int fd, bool exclusive); void release_lock(int fd); void create(const char* dbName);
--- a/gengetopt.in Tue Oct 07 21:03:26 2008 +0000 +++ b/gengetopt.in Wed Oct 08 11:06:11 2008 +0000 @@ -1,7 +1,7 @@ package "audioDB" version "version 0.8.preview" purpose "A feature vector database management system for content-based retrieval." -option "help" H "print help on audioDB usage and exit." optional + option "verbosity" v "level of detail of operational information." int typestr="detail" default="1" optional text "\nDatabase commands are UPPER CASE. Command options are lower case.\n" text "" @@ -53,11 +53,11 @@ option "QUERY" Q "content-based search on --database using --features as a query. Optionally restrict the search to those tracks identified in a --keyList." values="point","track","sequence","nsequence","onetoonensequence" typestr="searchtype" dependon="database" optional option "qpoint" p "ordinal position of query start point in --features file." int typestr="position" default="0" optional -option "exhaustive" e "exhaustive search: iterate through all query vectors in search. Overrides --qpoint." flag off optional hidden +option "exhaustive" e "exhaustive search: iterate through all query vectors in search. Overrides --qpoint." flag off hidden option "pointnn" n "number of point nearest neighbours to use in retrieval." int typestr="numpoints" default="10" optional option "radius" R "radius search, returns all points/tracks/sequences inside given radius. (Overrides --pointnn)." double default="1.0" optional option "expandfactor" x "time compress/expand factor of result length to query length [1.0 .. 100.0]." double default="1.1" optional hidden -option "rotate" o "rotate query vectors for rotationally invariant search." flag off optional hidden +option "rotate" o "rotate query vectors for rotationally invariant search." flag off hidden option "resultlength" r "maximum length of the result list." int typestr="length" default="10" optional option "sequencelength" l "length of sequences for sequence search." int typestr="length" default="16" optional option "sequencehop" h "hop size of sequence window for sequence search." int typestr="hop" default="1" optional @@ -73,18 +73,18 @@ option "lsh_N" - "number of rows per hash tables" int typestr="size" default="100000" dependon="INDEX" optional option "lsh_b" - "number of tracks per indexing iteration" int typestr="size" default="500" dependon="INDEX" optional option "lsh_ncols" - "number of columns (collisions) to allocate for FORMAT1 LSH serialization" int typestr="size" default="250" dependon="INDEX" optional hidden -option "lsh_exact" - "use exact evaluation of points retrieved by LSH." flag off dependon="QUERY" optional -option "lsh_on_disk" - "Construct LSH hash tables for on-disk query (INDEX/QUERY)" flag off optional -option "lsh_use_u_functions" - "use m independent hash functions combinatorically to approximate L independent hash functions." flag off optional +option "lsh_exact" - "use exact evaluation of points retrieved by LSH." flag off dependon="QUERY" +option "lsh_on_disk" - "Construct LSH hash tables for on-disk query (INDEX/QUERY)" flag off +option "lsh_use_u_functions" - "use m independent hash functions combinatorically to approximate L independent hash functions." flag off section "Normalization control parameters" sectiondesc="These parameters control the normalization of feaures at query time\n" -option "no_unit_norming" - "do not unit norm features when querying an L2Norm databases." flag off optional +option "no_unit_norming" - "do not unit norm features when querying an L2Norm databases." flag off section "Web Services" sectiondesc="These commands enable the database process to establish a connection via the internet and operate as separate client and server processes.\n" option "SERVER" s "run as standalone web service on named port." int typestr="port" default="14475" optional -option "load_index" - "make web service with memory-resident hashtables" flag off dependon="radius" optional +option "load_index" - "make web service with memory-resident hashtables" flag off dependon="radius" option "client" c "run as a client using named host service." string typestr="hostname:port" optional
--- a/soap.cpp Tue Oct 07 21:03:26 2008 +0000 +++ b/soap.cpp Wed Oct 08 11:06:11 2008 +0000 @@ -143,7 +143,7 @@ /* Server definitions */ int adb__status(struct soap* soap, xsd__string dbName, adb__statusResponse &adbStatusResponse){ - char* const argv[]={"./audioDB",COM_STATUS,"-d",dbName}; + const char *const argv[]={"./audioDB",COM_STATUS,"-d",dbName}; const unsigned argc = 4; try { audioDB(argc, argv, &adbStatusResponse); @@ -160,7 +160,7 @@ INTSTRINGIFY(lisztOffset, lisztOffsetStr); INTSTRINGIFY(lisztLength, lisztLengthStr); - char* const argv[] = {"./audioDB", COM_LISZT, "-d",dbName, "--lisztOffset", lisztOffsetStr, "--lisztLength", lisztLengthStr}; + const char* const argv[] = {"./audioDB", COM_LISZT, "-d",dbName, "--lisztOffset", lisztOffsetStr, "--lisztLength", lisztLengthStr}; const unsigned argc = 8; try{ audioDB(argc, argv, &adbLisztResponse); @@ -237,7 +237,7 @@ argc++; } - char **argv = new char*[argc+1]; + const char **argv = new const char*[argc+1]; argv[0] = "./audioDB"; argv[1] = COM_QUERY; argv[2] = queryType;