[Positioning] Input: del RP's requests on new CR
When a new calibration request is received, all the calibration requests of the corresponding reference point are now cleared prior to add the new request. We should probably use a timeout to delete only the old calibration requests and keep the recent ones.
This commit is contained in:
parent
b8bd2acf44
commit
0491fe0a62
|
@ -30,6 +30,12 @@ CalibrationRequest(const Request &source,
|
|||
/* *** Write accessors *** */
|
||||
|
||||
|
||||
void CalibrationRequest::reference_point_delete_requests() const
|
||||
{
|
||||
reference_point->delete_requests() ;
|
||||
}
|
||||
|
||||
|
||||
void CalibrationRequest::reference_point_backward_link() const
|
||||
{
|
||||
reference_point->add_request(this) ;
|
||||
|
|
|
@ -41,6 +41,8 @@ public:
|
|||
void set_reference_point(const ReferencePoint *_rp) ;
|
||||
/// Adds the CalibrationRequest to the #reference_point list of requests
|
||||
void reference_point_backward_link(void) const ;
|
||||
/// Deletes all the requests of #reference_point
|
||||
void reference_point_delete_requests(void) const ;
|
||||
void clear(void) ;
|
||||
//@}
|
||||
|
||||
|
|
|
@ -127,7 +127,10 @@ const Request& Input::get_next_request() const
|
|||
dynamic_cast<CalibrationRequest*>(
|
||||
const_cast<Request*>(&request)) ;
|
||||
if (calibration_request != NULL)
|
||||
Stock::store_calibration_request(*calibration_request) ;
|
||||
{
|
||||
calibration_request->reference_point_delete_requests() ;
|
||||
Stock::store_calibration_request(*calibration_request) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -107,6 +107,20 @@ get_requests(const string &mac_transmitter) const
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Note that the requests pointed by the elements of #requests are
|
||||
* actually deleted from the Stock.
|
||||
*/
|
||||
void ReferencePoint::delete_requests()
|
||||
{
|
||||
for (vector<CalibrationRequest*>::iterator i = requests.begin() ;
|
||||
i != requests.end() ; ++i)
|
||||
Stock::delete_calibration_request(**i) ;
|
||||
|
||||
requests.clear() ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* *** Operations *** */
|
||||
|
||||
|
|
|
@ -55,6 +55,8 @@ public:
|
|||
//@{
|
||||
/// Adds a Request to the \link #requests request list\endlink
|
||||
void add_request(const CalibrationRequest *cm) ;
|
||||
/// Deletes all the requests contained in #requests
|
||||
void delete_requests(void) ;
|
||||
//@}
|
||||
|
||||
/** @name Operations */
|
||||
|
|
|
@ -323,6 +323,13 @@ store_calibration_request(const CalibrationRequest &request)
|
|||
}
|
||||
|
||||
|
||||
void Stock::
|
||||
delete_calibration_request(const CalibrationRequest &request)
|
||||
{
|
||||
calibration_requests.erase(request) ;
|
||||
}
|
||||
|
||||
|
||||
const CalibrationRequest& Stock::
|
||||
find_create_calibration_request(const CalibrationRequest &request)
|
||||
{
|
||||
|
|
|
@ -121,6 +121,9 @@ public:
|
|||
/// not exist, and links it to its reference point
|
||||
static void store_calibration_request(
|
||||
const CalibrationRequest &request) ;
|
||||
/// Deletes a CalibrationRequest
|
||||
static void delete_calibration_request(
|
||||
const CalibrationRequest &request) ;
|
||||
/// Searches for a CalibrationRequest and adds it if it does not exist
|
||||
static const CalibrationRequest&
|
||||
find_create_calibration_request(const CalibrationRequest &request) ;
|
||||
|
|
Loading…
Reference in New Issue