mas01cr@0: // audioDBws.h -- web services interface to audioDB mas01cr@0: // mas01cr@22: //FIXME: this hard-coding of the service location might be right for mas01cr@22: //its internal use at Goldsmiths (for now) but really isn't in mas01cr@22: //general. Find a way to bind this later (at install time? Or maybe mas01cr@22: //just require that the installer edit the resulting wsdl file?) mas01cr@0: // mas01cr@22: //gsoap adb service location: http://gibbons.doc.gold.ac.uk:20703/ mas01cr@0: mas01cr@0: typedef int xsd__int; mas01cr@0: typedef double xsd__double; mas01cr@0: typedef char* xsd__string; mas01cr@0: mas01cr@0: // Supports result lists of arbitrary length mas01cr@133: struct adb__queryResult{ mas01cr@0: int __sizeRlist; mas01cr@0: char **Rlist; // Maximum size of result list mas01cr@0: int __sizeDist; mas01cr@0: double *Dist; mas01cr@0: int __sizeQpos; mas01cr@86: unsigned int *Qpos; mas01cr@0: int __sizeSpos; mas01cr@86: unsigned int *Spos; mas01cr@0: }; mas01cr@0: mas01cr@133: struct adb__statusResult { mas01cr@76: unsigned numFiles; mas01cr@76: unsigned dim; mas01cr@76: unsigned length; mas01cr@76: unsigned dudCount; mas01cr@76: unsigned nullCount; mas01cr@76: unsigned flags; mas01cr@76: }; mas01cr@133: mas01cr@133: struct adb__statusResponse { mas01cr@133: struct adb__statusResult result; mas01cr@133: }; mas01cr@133: mas01cr@133: struct adb__queryResponse { mas01cr@133: struct adb__queryResult result; mas01cr@133: }; mas01cr@133: mas01mc@334: struct adb__lisztResult { mas01mc@334: int __sizeRkey; mas01mc@334: char **Rkey; mas01mc@334: int __sizeRlen; mas01mc@334: unsigned int *Rlen; mas01mc@334: }; mas01mc@334: mas01mc@354: struct adb__queryVector { mas01mc@354: int dim; // dimensionality of the feature (d) mas01mc@354: int __sizev; // l x d : mas01mc@354: double *v; // pointer to query data mas01mc@354: int __sizep; mas01mc@354: double *p; mas01mc@354: }; mas01mc@354: mas01mc@334: struct adb__lisztResponse { mas01mc@334: struct adb__lisztResult result; mas01mc@334: }; mas01mc@334: mas01cr@0: // Print the status of an existing adb database mas01cr@133: int adb__status(xsd__string dbName, struct adb__statusResponse &adbStatusResponse); mas01cr@0: mas01mc@334: // Print the status of an existing adb database mas01mc@334: int adb__liszt(xsd__string dbName, xsd__int lisztOffset, xsd__int lisztLength, struct adb__lisztResponse &adbLisztResponse); mas01mc@334: mas01cr@0: // Query an existing adb database mas01mc@471: int adb__query(xsd__string dbName, xsd__string qKey, xsd__string keyList, xsd__string timesFileName, xsd__string powerFileName, xsd__int qType, xsd__int qPos, xsd__int pointNN, xsd__int segNN, xsd__int segLen, xsd__double radius, xsd__double absolute_threshold, xsd__double relative_threshold, xsd__int exhaustive, xsd__int lsh_exact, xsd__int no_unit_norming, struct adb__queryResponse &adbQueryResponse); mas01cr@193: mas01mc@471: int adb__sequenceQueryByKey(xsd__string dbName,xsd__string trackKey, xsd__string featureFileName, xsd__int queryType,xsd__string trackFileName,xsd__string timesFileName,xsd__int queryPoint,xsd__int pointNN,xsd__int trackNN,xsd__int sequenceLength,xsd__double radius,xsd__double absolute_threshold,xsd__int usingQueryPoint,xsd__int lsh_exact, xsd__int no_unit_norming, struct adb__queryResponse &adbQueryResponse); mas01mc@354: mas01mc@354: // Query an audioDB database by vector (serialized), queryKey/featureFileName is here replaced with qVector mas01mc@471: int adb__shingleQuery(xsd__string dbName, struct adb__queryVector qVector, xsd__string keyList, xsd__string timesFileName, xsd__int queryType, xsd__int queryPos, xsd__int pointNN, xsd__int trackNN, xsd__int sequenceLength, xsd__double radius, xsd__double absolute_threshold, xsd__double relative_threshold, xsd__int exhaustive, xsd__int lsh_exact, xsd__int no_unit_norming, struct adb__queryResponse &adbQueryResponse); mas01mc@354: