Skip to content
Snippets Groups Projects
Commit 49fed662 authored by Mirko Wächter's avatar Mirko Wächter
Browse files

RobotPool: added possibility to create n robots on RobotPool creation

parent 8446d97d
No related branches found
No related tags found
Loading
......@@ -28,10 +28,14 @@
namespace armarx
{
RobotPool::RobotPool(VirtualRobot::RobotPtr robot) :
RobotPool::RobotPool(VirtualRobot::RobotPtr robot, size_t defaultSize) :
baseRobot(robot)
{
std::vector<VirtualRobot::RobotPtr> tempVec;
for (size_t i = 0; i < defaultSize; ++i)
{
tempVec.push_back(getRobot());
}
}
VirtualRobot::RobotPtr RobotPool::getRobot(int inflation)
......@@ -94,7 +98,9 @@ namespace armarx
newList.push_back(r);
}
else
{
count++;
}
}
pair.second = newList;
}
......
......@@ -36,7 +36,7 @@ namespace armarx
// VirtualRobot::RobotPtr robot;
// };
RobotPool(VirtualRobot::RobotPtr robot);
RobotPool(VirtualRobot::RobotPtr robot, size_t defaultSize = 1);
/**
* @brief getRobot
* @param inflation inflation of collision model in mm
......
......@@ -50,25 +50,26 @@ BOOST_AUTO_TEST_CASE(RobotPoolTest)
ArmarXDataPath::getAbsolutePath(fn, fn);
std::string robotFilename = fn;
VirtualRobot::RobotPtr robot = VirtualRobot::RobotIO::loadRobot(robotFilename, VirtualRobot::RobotIO::eCollisionModel);
RobotPool pool(robot);
RobotPool pool(robot, 2);
{
BOOST_CHECK_EQUAL(pool.getPoolSize(), 2);
auto clone = pool.getRobot();
ARMARX_CHECK_EQUAL(pool.getPoolSize(), 1);
ARMARX_CHECK_EQUAL(pool.getRobotsInUseCount(), 1);
BOOST_CHECK_EQUAL(pool.getPoolSize(), 2);
BOOST_CHECK_EQUAL(pool.getRobotsInUseCount(), 1);
{
auto clone2 = pool.getRobot();
ARMARX_CHECK_EQUAL(pool.getPoolSize(), 2);
ARMARX_CHECK_EQUAL(pool.getRobotsInUseCount(), 2);
BOOST_CHECK_EQUAL(pool.getPoolSize(), 2);
BOOST_CHECK_EQUAL(pool.getRobotsInUseCount(), 2);
}
ARMARX_CHECK_EQUAL(pool.getPoolSize(), 2);
ARMARX_CHECK_EQUAL(pool.getRobotsInUseCount(), 1);
BOOST_CHECK_EQUAL(pool.getPoolSize(), 2);
BOOST_CHECK_EQUAL(pool.getRobotsInUseCount(), 1);
auto clone2 = pool.getRobot();
ARMARX_CHECK_EQUAL(pool.getPoolSize(), 2);
ARMARX_CHECK_EQUAL(pool.getRobotsInUseCount(), 2);
BOOST_CHECK_EQUAL(pool.getPoolSize(), 2);
BOOST_CHECK_EQUAL(pool.getRobotsInUseCount(), 2);
}
ARMARX_CHECK_EQUAL(pool.getRobotsInUseCount(), 0);
ARMARX_CHECK_EQUAL(pool.clean(), 2);
ARMARX_CHECK_EQUAL(pool.getPoolSize(), 0);
BOOST_CHECK_EQUAL(pool.getRobotsInUseCount(), 0);
BOOST_CHECK_EQUAL(pool.clean(), 2);
BOOST_CHECK_EQUAL(pool.getPoolSize(), 0);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment