# HG changeset patch # User mas01cr # Date 1231259221 0 # Node ID b2fd8113d8bccd0bbe037037920ae2bda043726e # Parent 0f96ad351990025399f2b5b2096f93925b7371f6 const declarations for some API arguments. This should make it slightly clearer whose responsibility (the user's) it is to manage the memory pointed to by the corresponding arguments. Suggested by Chris Cannam. diff -r 0f96ad351990 -r b2fd8113d8bc audioDB-internals.h --- a/audioDB-internals.h Tue Jan 06 15:25:39 2009 +0000 +++ b/audioDB-internals.h Tue Jan 06 16:27:01 2009 +0000 @@ -252,9 +252,9 @@ int audiodb_track_id_datum(adb_t *, uint32_t, adb_datum_t *); int audiodb_free_datum(adb_datum_t *); int audiodb_datum_qpointers(adb_datum_t *, uint32_t, double **, double **, adb_qpointers_internal_t *); -int audiodb_query_spec_qpointers(adb_t *, adb_query_spec_t *, double **, double **, adb_qpointers_internal_t *); -int audiodb_query_queue_loop(adb_t *, adb_query_spec_t *, adb_qstate_internal_t *, double *, adb_qpointers_internal_t *); -int audiodb_query_loop(adb_t *, adb_query_spec_t *, adb_qstate_internal_t *); +int audiodb_query_spec_qpointers(adb_t *, const adb_query_spec_t *, double **, double **, adb_qpointers_internal_t *); +int audiodb_query_queue_loop(adb_t *, const adb_query_spec_t *, adb_qstate_internal_t *, double *, adb_qpointers_internal_t *); +int audiodb_query_loop(adb_t *, const adb_query_spec_t *, adb_qstate_internal_t *); char *audiodb_index_get_name(const char *, double, uint32_t); bool audiodb_index_exists(const char *, double, uint32_t); -int audiodb_index_query_loop(adb_t *, adb_query_spec_t *, adb_qstate_internal_t *); +int audiodb_index_query_loop(adb_t *, const adb_query_spec_t *, adb_qstate_internal_t *); diff -r 0f96ad351990 -r b2fd8113d8bc audioDB_API.h --- a/audioDB_API.h Tue Jan 06 15:25:39 2009 +0000 +++ b/audioDB_API.h Tue Jan 06 16:27:01 2009 +0000 @@ -181,15 +181,15 @@ int audiodb_power(adb_ptr mydb); /* insert functions */ -int audiodb_insert_datum(adb_t *, adb_datum_t *); -int audiodb_insert_reference(adb_t *, adb_reference_t *); +int audiodb_insert_datum(adb_t *, const adb_datum_t *); +int audiodb_insert_reference(adb_t *, const adb_reference_t *); int audiodb_insert(adb_ptr mydb, adb_insert_ptr ins); int audiodb_batchinsert(adb_ptr mydb, adb_insert_ptr ins, unsigned int size); /* query function */ int audiodb_query(adb_ptr mydb, adb_query_ptr adbq, adb_queryresult_ptr adbqres); -adb_query_results_t *audiodb_query_spec(adb_t *, adb_query_spec_t *); -int audiodb_query_free_results(adb_t *, adb_query_spec_t *, adb_query_results_t *); +adb_query_results_t *audiodb_query_spec(adb_t *, const adb_query_spec_t *); +int audiodb_query_free_results(adb_t *, const adb_query_spec_t *, adb_query_results_t *); /* database status */ int audiodb_status(adb_ptr mydb, adb_status_ptr status); diff -r 0f96ad351990 -r b2fd8113d8bc index.cpp --- a/index.cpp Tue Jan 06 15:25:39 2009 +0000 +++ b/index.cpp Tue Jan 06 16:27:01 2009 +0000 @@ -516,7 +516,7 @@ // return true if indexed query performed else return false -int audiodb_index_init_query(adb_t *adb, adb_query_spec_t *spec, adb_qstate_internal_t *qstate, bool corep) { +int audiodb_index_init_query(adb_t *adb, const adb_query_spec_t *spec, adb_qstate_internal_t *qstate, bool corep) { uint32_t sequence_length = spec->qid.sequence_length; double radius = spec->refine.radius; @@ -578,7 +578,7 @@ // return -1 on error // return 0: if index does not exist // return nqv: if index exists -int audiodb_index_query_loop(adb_t *adb, adb_query_spec_t *spec, adb_qstate_internal_t *qstate) { +int audiodb_index_query_loop(adb_t *adb, const adb_query_spec_t *spec, adb_qstate_internal_t *qstate) { double *query = 0, *query_data = 0; adb_qpointers_internal_t qpointers = {0}; diff -r 0f96ad351990 -r b2fd8113d8bc insert.cpp --- a/insert.cpp Tue Jan 06 15:25:39 2009 +0000 +++ b/insert.cpp Tue Jan 06 16:27:01 2009 +0000 @@ -215,7 +215,7 @@ return 1; } -int audiodb_insert_datum(adb_t *adb, adb_datum_t *datum) { +int audiodb_insert_datum(adb_t *adb, const adb_datum_t *datum) { if(adb->header->flags & O2_FLAG_LARGE_ADB) { return 1; } else { @@ -230,7 +230,7 @@ } } -int audiodb_insert_reference(adb_t *adb, adb_reference_t *reference) { +int audiodb_insert_reference(adb_t *adb, const adb_reference_t *reference) { if(!(adb->header->flags & O2_FLAG_LARGE_ADB)) { return 1; } else { diff -r 0f96ad351990 -r b2fd8113d8bc query.cpp --- a/query.cpp Tue Jan 06 15:25:39 2009 +0000 +++ b/query.cpp Tue Jan 06 16:27:01 2009 +0000 @@ -2,7 +2,7 @@ #include "audioDB-internals.h" #include "accumulators.h" -bool audiodb_powers_acceptable(adb_query_refine_t *r, double p1, double p2) { +bool audiodb_powers_acceptable(const adb_query_refine_t *r, double p1, double p2) { if (r->flags & ADB_REFINE_ABSOLUTE_THRESHOLD) { if ((p1 < r->absolute_threshold) || (p2 < r->absolute_threshold)) { return false; @@ -16,7 +16,7 @@ return true; } -adb_query_results_t *audiodb_query_spec(adb_t *adb, adb_query_spec_t *qspec) { +adb_query_results_t *audiodb_query_spec(adb_t *adb, const adb_query_spec_t *qspec) { adb_qstate_internal_t qstate = {0}; qstate.allowed_keys = new std::set; adb_query_results_t *results; @@ -96,13 +96,13 @@ return NULL; } -int audiodb_query_free_results(adb_t *adb, adb_query_spec_t *spec, adb_query_results_t *rs) { +int audiodb_query_free_results(adb_t *adb, const adb_query_spec_t *spec, adb_query_results_t *rs) { free(rs->results); free(rs); return 0; } -static void audiodb_initialize_arrays(adb_t *adb, adb_query_spec_t *spec, int track, unsigned int numVectors, double *query, double *data_buffer, double **D, double **DD) { +static void audiodb_initialize_arrays(adb_t *adb, const adb_query_spec_t *spec, int track, unsigned int numVectors, double *query, double *data_buffer, double **D, double **DD) { unsigned int j, k, l, w; double *dp, *qp, *sp; @@ -278,7 +278,7 @@ return 0; } -int audiodb_query_spec_qpointers(adb_t *adb, adb_query_spec_t *spec, double **vector_data, double **vector, adb_qpointers_internal_t *qpointers) { +int audiodb_query_spec_qpointers(adb_t *adb, const adb_query_spec_t *spec, double **vector_data, double **vector, adb_qpointers_internal_t *qpointers) { adb_datum_t *datum; adb_datum_t d = {0}; uint32_t sequence_length; @@ -337,7 +337,7 @@ return 0; } -static int audiodb_set_up_dbpointers(adb_t *adb, adb_query_spec_t *spec, adb_qpointers_internal_t *dbpointers) { +static int audiodb_set_up_dbpointers(adb_t *adb, const adb_query_spec_t *spec, adb_qpointers_internal_t *dbpointers) { uint32_t nvectors = adb->header->length / (adb->header->dim * sizeof(double)); uint32_t sequence_length = spec->qid.sequence_length; @@ -427,7 +427,7 @@ } -int audiodb_query_queue_loop(adb_t *adb, adb_query_spec_t *spec, adb_qstate_internal_t *qstate, double *query, adb_qpointers_internal_t *qpointers) { +int audiodb_query_queue_loop(adb_t *adb, const adb_query_spec_t *spec, adb_qstate_internal_t *qstate, double *query, adb_qpointers_internal_t *qpointers) { adb_qpointers_internal_t dbpointers = {0}; uint32_t sequence_length = spec->qid.sequence_length; @@ -505,7 +505,7 @@ return 0; } -int audiodb_query_loop(adb_t *adb, adb_query_spec_t *spec, adb_qstate_internal_t *qstate) { +int audiodb_query_loop(adb_t *adb, const adb_query_spec_t *spec, adb_qstate_internal_t *qstate) { double *query, *query_data; adb_qpointers_internal_t qpointers = {0}, dbpointers = {0};