changeset 388:f6aa8c5cd865 api-inversion

Preparation for more complex inversion. Add a file descriptor and a DB Header struct pointer into the audioDB structure. (The structure description that is visible in audioDB_API.h should never be exposed to code _using_ the library; for that, the adb_t structure should be completely opaque, only ever passed around to API functions. For actually _implementing_ the library, though, of course we need access to our own internals...)
author mas01cr
date Mon, 24 Nov 2008 11:12:57 +0000
parents 033051b7dc6f
children bdd6bf8d1e85
files audioDB.cpp audioDB_API.h
diffstat 2 files changed, 19 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/audioDB.cpp	Mon Nov 24 11:12:56 2008 +0000
+++ b/audioDB.cpp	Mon Nov 24 11:12:57 2008 +0000
@@ -922,7 +922,7 @@
     argv[argvctr++]="audioDB";
     argv[argvctr++]="-I";
     argv[argvctr++]="-d";
-    argv[argvctr++]=mydb->dbname;
+    argv[argvctr++]=mydb->path;
     argv[argvctr++]="-f";
     argv[argvctr++]=ins->features;
 
@@ -973,7 +973,7 @@
     argv[argvctr++]="audioDB";
     argv[argvctr++]="-B";
     argv[argvctr++]="-d";
-    argv[argvctr++]=mydb->dbname;
+    argv[argvctr++]=mydb->path;
 
 
     /* assume struct is well formed for all entries */
@@ -1100,9 +1100,9 @@
         argv[argvctr++]=adbq->querytype;
     }
 
-    if(mydb->dbname){
+    if(mydb->path){
         argv[argvctr++]="-d";
-        argv[argvctr++]=mydb->dbname;
+        argv[argvctr++]=mydb->path;
     }
 
     if (adbq->feature){
@@ -1201,7 +1201,7 @@
       argv[0]="audioDB";
       argv[1]="--STATUS";
       argv[2]="-d";
-      argv[3]=mydb->dbname;
+      argv[3]=mydb->path;
       argv[4]='\0';
 
       audioDB::audioDB(4,argv,&sss ,&apierror);
@@ -1229,7 +1229,7 @@
       argv[argvctr++]="audioDB";
       argv[argvctr++]="--DUMP";
       argv[argvctr++]="-d";
-      argv[argvctr++]=mydb->dbname;
+      argv[argvctr++]=mydb->path;
       argv[argvctr++]="--output";
       argv[argvctr++]=(char *)outputdir;
       argv[argvctr]='\0';
@@ -1247,7 +1247,7 @@
       argv[0]="audioDB";
       argv[1]="--L2NORM";
       argv[2]="-d";
-      argv[3]=mydb->dbname;
+      argv[3]=mydb->path;
       argv[4]='\0';
 
       audioDB::audioDB(4,argv,&apierror);
@@ -1262,7 +1262,7 @@
       argv[0]="audioDB";
       argv[1]="--POWER";
       argv[2]="-d";
-      argv[3]=mydb->dbname;
+      argv[3]=mydb->path;
       argv[4]='\0';
 
       audioDB::audioDB(4,argv,&apierror);
@@ -1279,14 +1279,11 @@
         if (open(path, O_EXCL) != -1){
 
             mydbp=(adb_ptr)malloc(sizeof(adb));
-            mydbp->dbname=(char *)malloc(1+strlen(path));
+            mydbp->path=(char *)malloc(1+strlen(path));
 
-            strcpy(mydbp->dbname,path); 
+            strcpy(mydbp->path,path); 
 
             audiodb_status(mydbp, &mystatus);
-            mydbp->ntracks=mystatus.numFiles;
-            mydbp->datadim=mystatus.dim;
-
             return mydbp;
         }
 
@@ -1297,7 +1294,7 @@
 
   void audiodb_close(adb_ptr db){
 
-      free(db->dbname);
+      free(db->path);
       free(db);
 
   }
--- a/audioDB_API.h	Mon Nov 24 11:12:56 2008 +0000
+++ b/audioDB_API.h	Mon Nov 24 11:12:57 2008 +0000
@@ -6,16 +6,19 @@
 /*******************************************************************/
 /* Data types for API */
 
+typedef struct dbTableHeader adb_header_t;
+
 /* The main struct that stores the name of the database, and in future will hold all
  * kinds of other interesting information */
 /* This basically gets passed around to all of the other functions */
+
 struct adb {
-
-    char * dbname;
-    unsigned int ntracks;       /* number of tracks */
-    unsigned int datadim;       /* dimensionality of stored data */
-
+  char *path;
+  int fd;
+  adb_header_t *header;
 };
+/* FIXME: it might be that "adb_" isn't such a good prefix to use, and
+   that we should prefer "audiodb_" */
 typedef struct adb adb_t, *adb_ptr;
 
 //used for both insert and batchinsert