[Positioner] Fix calibration-requests-timeout
Fixes Stock::delete_calibration_requests_older_than(), by calling the new function ReferencePoint::delete_request().
This commit is contained in:
parent
038c24da05
commit
f54426c3bb
|
@ -28,7 +28,7 @@ ReferencePoint::~ReferencePoint()
|
|||
|
||||
|
||||
|
||||
/* *** Accessors *** */
|
||||
/* *** Read accessors *** */
|
||||
|
||||
|
||||
double ReferencePoint::
|
||||
|
@ -114,6 +114,22 @@ get_requests(const string &mac_transmitter) const
|
|||
}
|
||||
|
||||
|
||||
|
||||
/* *** Write accessors *** */
|
||||
|
||||
|
||||
void ReferencePoint::delete_request(const CalibrationRequest *r)
|
||||
{
|
||||
for (vector<CalibrationRequest*>::iterator i = requests.begin() ;
|
||||
i != requests.end() ; ++i)
|
||||
if (*i == r)
|
||||
{
|
||||
requests.erase(i) ;
|
||||
return ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Note that the requests pointed by the elements of #requests are
|
||||
* actually deleted from the Stock.
|
||||
|
|
|
@ -65,6 +65,8 @@ public:
|
|||
//@{
|
||||
/// Adds a Request to the \link #requests request list\endlink
|
||||
void add_request(const CalibrationRequest *r) ;
|
||||
/// Deletes a Request from the \link #requests request list\endlink
|
||||
void delete_request(const CalibrationRequest *r) ;
|
||||
/// Deletes all the requests contained in #requests
|
||||
void delete_requests(void) ;
|
||||
/// Deletes the requests that are not sent by an AP
|
||||
|
|
|
@ -526,9 +526,13 @@ void Stock::delete_calibration_requests_older_than(int timeout)
|
|||
if (elapsed_sec >= static_cast<unsigned int>(timeout))
|
||||
{
|
||||
ReferencePoint *rp = cr->get_reference_point() ;
|
||||
if (rp)
|
||||
{
|
||||
rp->delete_request(&*cr) ;
|
||||
if (rp->get_requests().empty())
|
||||
reference_points.erase(*rp) ;
|
||||
}
|
||||
cr = calibration_requests.erase(cr) ;
|
||||
if (rp && rp->get_requests().empty())
|
||||
reference_points.erase(*rp) ;
|
||||
}
|
||||
else
|
||||
++cr ;
|
||||
|
|
Loading…
Reference in New Issue