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@319: 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@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; mas01cr@239: mas01cr@239: soap_init(&soap); mas01cr@239: if(soap_call_adb__query(&soap,hostport,NULL, mas01mc@307: (char*)dbName,(char*)featureFileName,(char*)trackFileName,(char*)timesFileName, mas01cr@239: queryType, queryPoint, pointNN, trackNN, sequenceLength, adbQueryResponse)==SOAP_OK){ mas01cr@239: //std::std::cerr << "result list length:" << adbQueryResponse.result.__sizeRlist << std::std::endl; mas01cr@239: 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: }