[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 *** */
|
/* *** Write accessors *** */
|
||||||
|
|
||||||
|
|
||||||
|
void CalibrationRequest::reference_point_delete_requests() const
|
||||||
|
{
|
||||||
|
reference_point->delete_requests() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CalibrationRequest::reference_point_backward_link() const
|
void CalibrationRequest::reference_point_backward_link() const
|
||||||
{
|
{
|
||||||
reference_point->add_request(this) ;
|
reference_point->add_request(this) ;
|
||||||
|
|
|
@ -41,6 +41,8 @@ public:
|
||||||
void set_reference_point(const ReferencePoint *_rp) ;
|
void set_reference_point(const ReferencePoint *_rp) ;
|
||||||
/// Adds the CalibrationRequest to the #reference_point list of requests
|
/// Adds the CalibrationRequest to the #reference_point list of requests
|
||||||
void reference_point_backward_link(void) const ;
|
void reference_point_backward_link(void) const ;
|
||||||
|
/// Deletes all the requests of #reference_point
|
||||||
|
void reference_point_delete_requests(void) const ;
|
||||||
void clear(void) ;
|
void clear(void) ;
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
@ -127,9 +127,12 @@ const Request& Input::get_next_request() const
|
||||||
dynamic_cast<CalibrationRequest*>(
|
dynamic_cast<CalibrationRequest*>(
|
||||||
const_cast<Request*>(&request)) ;
|
const_cast<Request*>(&request)) ;
|
||||||
if (calibration_request != NULL)
|
if (calibration_request != NULL)
|
||||||
|
{
|
||||||
|
calibration_request->reference_point_delete_requests() ;
|
||||||
Stock::store_calibration_request(*calibration_request) ;
|
Stock::store_calibration_request(*calibration_request) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return medium->get_current_request() ;
|
return medium->get_current_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 *** */
|
/* *** Operations *** */
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,8 @@ public:
|
||||||
//@{
|
//@{
|
||||||
/// Adds a Request to the \link #requests request list\endlink
|
/// Adds a Request to the \link #requests request list\endlink
|
||||||
void add_request(const CalibrationRequest *cm) ;
|
void add_request(const CalibrationRequest *cm) ;
|
||||||
|
/// Deletes all the requests contained in #requests
|
||||||
|
void delete_requests(void) ;
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/** @name Operations */
|
/** @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::
|
const CalibrationRequest& Stock::
|
||||||
find_create_calibration_request(const CalibrationRequest &request)
|
find_create_calibration_request(const CalibrationRequest &request)
|
||||||
{
|
{
|
||||||
|
|
|
@ -121,6 +121,9 @@ public:
|
||||||
/// not exist, and links it to its reference point
|
/// not exist, and links it to its reference point
|
||||||
static void store_calibration_request(
|
static void store_calibration_request(
|
||||||
const CalibrationRequest &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
|
/// Searches for a CalibrationRequest and adds it if it does not exist
|
||||||
static const CalibrationRequest&
|
static const CalibrationRequest&
|
||||||
find_create_calibration_request(const CalibrationRequest &request) ;
|
find_create_calibration_request(const CalibrationRequest &request) ;
|
||||||
|
|
Loading…
Reference in New Issue