bool ExemplarClient::getOneRandomNumber(double & result) { ODL_OBJENTER(); //#### ODL_P1("result = ", &result); //#### bool okSoFar = false; try { yarp::os::Bottle parameters; ServiceResponse response; reconnectIfDisconnected(); if (send(MpM_SIMPLE_REQUEST_, parameters, response)) { if (1 == response.count()) { yarp::os::Value retrieved(response.element(0)); if (retrieved.isDouble()) { result = retrieved.asDouble(); okSoFar = true; } else { ODL_LOG("! (retrieved.isDouble())"); //#### } } else { ODL_LOG("! (1 == response.count())"); //#### ODL_S1s("response = ", response.asString()); //#### } } else { ODL_LOG("! (send(MpM_SIMPLE_REQUEST_, parameters, response))"); //#### } } catch (...) { ODL_LOG("Exception caught"); //#### throw; } ODL_OBJEXIT_B(okSoFar); //#### return okSoFar; } // ExemplarClient::getOneRandomNumber
bool ExemplarClient::getRandomNumbers(const int howMany, DoubleVector & result) { ODL_OBJENTER(); //#### ODL_I1("howMany = ", howMany); //#### ODL_P1("result = ", &result); //#### bool okSoFar = false; try { if (0 < howMany) { yarp::os::Bottle parameters; ServiceResponse response; parameters.addInt(howMany); reconnectIfDisconnected(); if (send(MpM_SIMPLE_REQUEST_, parameters, response)) { if (howMany == response.count()) { result.clear(); okSoFar = true; for (int ii = 0; ii < howMany; ++ii) { yarp::os::Value retrieved(response.element(ii)); if (retrieved.isDouble()) { result.push_back(retrieved.asDouble()); } else { ODL_LOG("! (retrieved.isDouble())"); //#### okSoFar = false; break; } } } else { ODL_LOG("! (howMany == response.count())"); //#### ODL_S1s("response = ", response.asString()); //#### } } else { ODL_LOG("! (send(MpM_SIMPLE_REQUEST_, parameters, response))"); //#### } } else { ODL_LOG("! (0 < howMany)"); //#### } } catch (...) { ODL_LOG("Exception caught"); //#### throw; } ODL_OBJEXIT_B(okSoFar); //#### return okSoFar; } // ExemplarClient::getRandomNumbers