mas01cr@239: #include "audioDB.h" mas01cr@239: #include "adb.nsmap" mas01cr@239: mas01cr@239: /* Command-line client definitions */ mas01cr@239: mas01cr@239: // FIXME: this can't propagate the sequence length argument (used for mas01cr@239: // dudCount). See adb__status() definition for the other half of mas01cr@239: // this. -- CSR, 2007-10-01 mas01cr@239: void audioDB::ws_status(const char*dbName, char* hostport){ mas01cr@239: struct soap soap; mas01cr@239: adb__statusResponse adbStatusResponse; mas01cr@239: mas01cr@239: // Query an existing adb database mas01cr@239: soap_init(&soap); mas01cr@239: if(soap_call_adb__status(&soap,hostport,NULL,(char*)dbName,adbStatusResponse)==SOAP_OK) { mas01cr@239: std::cout << "numFiles = " << adbStatusResponse.result.numFiles << std::endl; mas01cr@239: std::cout << "dim = " << adbStatusResponse.result.dim << std::endl; mas01cr@239: std::cout << "length = " << adbStatusResponse.result.length << std::endl; mas01cr@239: std::cout << "dudCount = " << adbStatusResponse.result.dudCount << std::endl; mas01cr@239: std::cout << "nullCount = " << adbStatusResponse.result.nullCount << std::endl; mas01mc@324: std::cout << "flags = " << (adbStatusResponse.result.flags & 0x00FFFFFF) << std::endl; mas01cr@239: } else { mas01cr@239: soap_print_fault(&soap,stderr); mas01cr@239: } mas01cr@239: mas01cr@239: soap_destroy(&soap); mas01cr@239: soap_end(&soap); mas01cr@239: soap_done(&soap); mas01cr@239: } mas01cr@239: mas01mc@334: void audioDB::ws_liszt(const char* dbName, char* Hostport){ mas01mc@334: struct soap soap; mas01mc@334: adb__lisztResponse adbLisztResponse; mas01mc@334: mas01mc@334: soap_init(&soap); mas01mc@334: if(soap_call_adb__liszt(&soap, hostport, NULL, (char*)dbName, lisztOffset, lisztLength, adbLisztResponse)==SOAP_OK){ mas01mc@334: for(int i = 0; i < adbLisztResponse.result.__sizeRkey; i++) { mas01mc@334: std::cout << "[" << i+lisztOffset << "] " << adbLisztResponse.result.Rkey[i] << " (" mas01mc@334: << adbLisztResponse.result.Rlen[i] << ")" << std::endl; mas01mc@334: } mas01mc@334: } else { mas01mc@334: soap_print_fault(&soap, stderr); mas01mc@334: } mas01mc@334: } mas01mc@334: mas01mc@308: // WS_QUERY (CLIENT SIDE) mas01mc@307: void audioDB::ws_query(const char*dbName, const char *featureFileName, const char* hostport){ mas01cr@239: struct soap soap; mas01cr@239: adb__queryResponse adbQueryResponse; mas01mc@329: VERB_LOG(1, "Calling fileName query on database %s with featureFile=%s\n", dbName, featureFileName); mas01cr@333: soap_init(&soap); mas01cr@333: if(soap_call_adb__query(&soap, hostport, NULL, (char *) dbName, mas01cr@333: (char *)featureFileName, (char *)trackFileName, mas01cr@333: (char *)timesFileName, (char *) powerFileName, mas01cr@333: queryType, queryPoint, mas01cr@333: pointNN, trackNN, sequenceLength, mas01cr@333: radius, absolute_threshold, relative_threshold, mas01cr@333: !usingQueryPoint, lsh_exact, mas01cr@333: adbQueryResponse) mas01cr@333: == SOAP_OK) { mas01cr@333: if(radius == 0) { mas01cr@333: for(int i=0; i> 24)&0xFF, (soap.ip >> 16)&0xFF, (soap.ip >> 8)&0xFF, soap.ip&0xFF, s); mas01cr@239: if (soap_serve(&soap) != SOAP_OK) // process RPC request mas01cr@239: soap_print_fault(&soap, stderr); // print error mas01cr@239: fprintf(stderr, "request served\n"); mas01cr@239: soap_destroy(&soap); // clean up class instances mas01cr@239: soap_end(&soap); // clean up everything and close socket mas01cr@239: } mas01cr@239: } mas01cr@239: soap_done(&soap); // close master socket and detach environment mas01cr@239: }