[Positioning] InputMedium: current_request now pointer
To handle calibration requests, we will need to make current_request be either a Request or a CalibrationRequest, so we must dynamically allocate it.
This commit is contained in:
parent
0b461bf4d0
commit
1ceab071a2
|
@ -119,8 +119,8 @@ const Request& InputCSV::get_next_request()
|
||||||
if (eof_close())
|
if (eof_close())
|
||||||
{
|
{
|
||||||
// End of file or error: blank current request
|
// End of file or error: blank current request
|
||||||
current_request.clear() ;
|
current_request->clear() ;
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Split read string into fields (semicolon-separated)
|
// Split read string into fields (semicolon-separated)
|
||||||
|
@ -133,8 +133,8 @@ const Request& InputCSV::get_next_request()
|
||||||
if (ti == tok.end())
|
if (ti == tok.end())
|
||||||
{
|
{
|
||||||
// Wrong number of fields: blank current request
|
// Wrong number of fields: blank current request
|
||||||
current_request.clear() ;
|
current_request->clear() ;
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the mobile did not exist, we create it
|
// If the mobile did not exist, we create it
|
||||||
|
@ -146,18 +146,18 @@ const Request& InputCSV::get_next_request()
|
||||||
{
|
{
|
||||||
Stock::getw_mobile(*ti).set_mac_addr(*ti) ;
|
Stock::getw_mobile(*ti).set_mac_addr(*ti) ;
|
||||||
}
|
}
|
||||||
current_request.set_mobile(&Stock::get_mobile(*ti)) ;
|
current_request->set_mobile(&Stock::get_mobile(*ti)) ;
|
||||||
|
|
||||||
// Read Timestamp field
|
// Read Timestamp field
|
||||||
if (++ti == tok.end())
|
if (++ti == tok.end())
|
||||||
{
|
{
|
||||||
// Wrong number of fields: blank current request
|
// Wrong number of fields: blank current request
|
||||||
current_request.clear() ;
|
current_request->clear() ;
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
current_request.set_timestamp(Timestamp
|
current_request->set_timestamp(Timestamp
|
||||||
(lexical_cast<uint64_t>(*ti))) ;
|
(lexical_cast<uint64_t>(*ti))) ;
|
||||||
}
|
}
|
||||||
catch (bad_lexical_cast &e)
|
catch (bad_lexical_cast &e)
|
||||||
|
@ -167,8 +167,8 @@ const Request& InputCSV::get_next_request()
|
||||||
<< *ti << " » at line "
|
<< *ti << " » at line "
|
||||||
<< current_line_nb << ", field « Timestamp », of input file « "
|
<< current_line_nb << ", field « Timestamp », of input file « "
|
||||||
<< input_file_name << " »!" << endl ;
|
<< input_file_name << " »!" << endl ;
|
||||||
current_request.clear() ; // Blank current request
|
current_request->clear() ; // Blank current request
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read position fields
|
// Read position fields
|
||||||
|
@ -179,8 +179,8 @@ const Request& InputCSV::get_next_request()
|
||||||
if (++ti == tok.end())
|
if (++ti == tok.end())
|
||||||
{
|
{
|
||||||
// Wrong number of fields: blank current request
|
// Wrong number of fields: blank current request
|
||||||
current_request.clear() ;
|
current_request->clear() ;
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -196,8 +196,8 @@ const Request& InputCSV::get_next_request()
|
||||||
<< current_line_nb << ", position field #" << i
|
<< current_line_nb << ", position field #" << i
|
||||||
<< ", of input file « " << input_file_name << " »!"
|
<< ", of input file « " << input_file_name << " »!"
|
||||||
<< endl ;
|
<< endl ;
|
||||||
current_request.clear() ; // Blank current request
|
current_request->clear() ; // Blank current request
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,8 +206,8 @@ const Request& InputCSV::get_next_request()
|
||||||
if (++ti == tok.end())
|
if (++ti == tok.end())
|
||||||
{
|
{
|
||||||
// Wrong number of fields: blank current request
|
// Wrong number of fields: blank current request
|
||||||
current_request.clear() ;
|
current_request->clear() ;
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -222,8 +222,8 @@ const Request& InputCSV::get_next_request()
|
||||||
<< *ti << " » at line "
|
<< *ti << " » at line "
|
||||||
<< current_line_nb << ", field « Direction », of input file « "
|
<< current_line_nb << ", field « Direction », of input file « "
|
||||||
<< input_file_name << " »!" << endl ;
|
<< input_file_name << " »!" << endl ;
|
||||||
current_request.clear() ; // Blank current request
|
current_request->clear() ; // Blank current request
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reading {MAC_AP;SS} couples
|
// Reading {MAC_AP;SS} couples
|
||||||
|
@ -236,8 +236,8 @@ const Request& InputCSV::get_next_request()
|
||||||
if (++ti == tok.end())
|
if (++ti == tok.end())
|
||||||
{
|
{
|
||||||
// Wrong number of fields: blank current request
|
// Wrong number of fields: blank current request
|
||||||
current_request.clear() ;
|
current_request->clear() ;
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ss ;
|
int ss ;
|
||||||
|
@ -253,8 +253,8 @@ const Request& InputCSV::get_next_request()
|
||||||
<< current_line_nb
|
<< current_line_nb
|
||||||
<< " of input file « " << input_file_name << " »!"
|
<< " of input file « " << input_file_name << " »!"
|
||||||
<< endl ;
|
<< endl ;
|
||||||
current_request.clear() ; // Blank current request
|
current_request->clear() ; // Blank current request
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the AP did not exist, we create it
|
// If the AP did not exist, we create it
|
||||||
|
@ -272,12 +272,12 @@ const Request& InputCSV::get_next_request()
|
||||||
measurements[mac_ap].add_ss(ss) ;
|
measurements[mac_ap].add_ss(ss) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
current_request.set_measurements(measurements) ;
|
current_request->set_measurements(measurements) ;
|
||||||
|
|
||||||
read_next_line() ;
|
read_next_line() ;
|
||||||
|
|
||||||
if (is_calibration_request)
|
if (is_calibration_request)
|
||||||
{} // TODO
|
{} // TODO
|
||||||
|
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,15 +12,14 @@ class InputMedium
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
/// The Request just read
|
/// The Request just read
|
||||||
Request current_request ;
|
Request *current_request ;
|
||||||
/// Number of the current line proceeded
|
/// Number of the current line proceeded
|
||||||
unsigned long current_line_nb ;
|
unsigned long current_line_nb ;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// Default constructor
|
|
||||||
InputMedium(void) ;
|
InputMedium(void) ;
|
||||||
|
|
||||||
virtual ~InputMedium(void) {} ///< Destructor (do nothing)
|
virtual ~InputMedium(void) ;
|
||||||
|
|
||||||
/** @name Read accessors */
|
/** @name Read accessors */
|
||||||
//@{
|
//@{
|
||||||
|
@ -63,17 +62,24 @@ public:
|
||||||
|
|
||||||
inline InputMedium::InputMedium()
|
inline InputMedium::InputMedium()
|
||||||
{
|
{
|
||||||
|
current_request = new Request() ;
|
||||||
current_line_nb = 0 ;
|
current_line_nb = 0 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline InputMedium::~InputMedium()
|
||||||
|
{
|
||||||
|
delete current_request ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* *** Read accessors *** */
|
/* *** Read accessors *** */
|
||||||
|
|
||||||
|
|
||||||
inline const Request& InputMedium::get_current_request() const
|
inline const Request& InputMedium::get_current_request() const
|
||||||
{
|
{
|
||||||
return current_request ;
|
return *current_request ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue