view audioDBws.h @ 108:bc141fd1dc41

New on-disk format! * new magic number: "o2db" rather than "O2DB". Check for the old one and give a helpful error message. (We could in principle handle the old databases transparently, but since only MC has actually used them and he has indicated that this is not desperately necessary...) * add fields to header: a file format version (currently 0; we have 2^32-1 revisions to make before we have to worry...) and fields for the offsets of the various tables. This is hopefully a little bit more futureproof: we can move the default locations of the tables around, and even adding new optional tables can be done easily in a fairly transparent manner (if the relevant header field is 0, don't use that feature). * align regions to the appropriate 32-word boundary. This gives us some space to breathe for in the header (admittedly only 15 words on 64-bit architectures...)
author mas01cr
date Fri, 05 Oct 2007 14:21:43 +0000
parents 53179ebec1f7
children a5d5a55a412d
line wrap: on
line source
// audioDBws.h -- web services interface to audioDB
//
//FIXME: this hard-coding of the service location might be right for
//its internal use at Goldsmiths (for now) but really isn't in
//general.  Find a way to bind this later (at install time?  Or maybe
//just require that the installer edit the resulting wsdl file?)
//
//gsoap adb service location: http://gibbons.doc.gold.ac.uk:20703/

typedef int xsd__int;
typedef double xsd__double;
typedef char* xsd__string;

// Supports result lists of arbitrary length
class adb__queryResult{
  int __sizeRlist;
  char **Rlist; // Maximum size of result list
  int __sizeDist;  
  double *Dist;
  int __sizeQpos;  
  unsigned int *Qpos;
  int __sizeSpos;
  unsigned int *Spos;
};

class adb__statusResult {
  unsigned numFiles;
  unsigned dim;
  unsigned length;
  unsigned dudCount;
  unsigned nullCount;
  unsigned flags;
};
    
// Print the status of an existing adb database
int adb__status(xsd__string dbName, adb__statusResult &adbStatusResult);

// Query an existing adb database
int adb__query(xsd__string dbName, xsd__string qKey, xsd__string keyList, xsd__string timesFileName, xsd__int qType, xsd__int qPos, xsd__int pointNN, xsd__int segNN, xsd__int segLen, adb__queryResult &adbQueryResult);