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