[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())
|
||||
{
|
||||
// End of file or error: blank current request
|
||||
current_request.clear() ;
|
||||
return current_request ;
|
||||
current_request->clear() ;
|
||||
return *current_request ;
|
||||
}
|
||||
|
||||
// Split read string into fields (semicolon-separated)
|
||||
|
@ -133,8 +133,8 @@ const Request& InputCSV::get_next_request()
|
|||
if (ti == tok.end())
|
||||
{
|
||||
// Wrong number of fields: blank current request
|
||||
current_request.clear() ;
|
||||
return current_request ;
|
||||
current_request->clear() ;
|
||||
return *current_request ;
|
||||
}
|
||||
|
||||
// If the mobile did not exist, we create it
|
||||
|
@ -146,19 +146,19 @@ const Request& InputCSV::get_next_request()
|
|||
{
|
||||
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
|
||||
if (++ti == tok.end())
|
||||
{
|
||||
// Wrong number of fields: blank current request
|
||||
current_request.clear() ;
|
||||
return current_request ;
|
||||
current_request->clear() ;
|
||||
return *current_request ;
|
||||
}
|
||||
try
|
||||
{
|
||||
current_request.set_timestamp(Timestamp
|
||||
(lexical_cast<uint64_t>(*ti))) ;
|
||||
current_request->set_timestamp(Timestamp
|
||||
(lexical_cast<uint64_t>(*ti))) ;
|
||||
}
|
||||
catch (bad_lexical_cast &e)
|
||||
{
|
||||
|
@ -167,8 +167,8 @@ const Request& InputCSV::get_next_request()
|
|||
<< *ti << " » at line "
|
||||
<< current_line_nb << ", field « Timestamp », of input file « "
|
||||
<< input_file_name << " »!" << endl ;
|
||||
current_request.clear() ; // Blank current request
|
||||
return current_request ;
|
||||
current_request->clear() ; // Blank current request
|
||||
return *current_request ;
|
||||
}
|
||||
|
||||
// Read position fields
|
||||
|
@ -179,8 +179,8 @@ const Request& InputCSV::get_next_request()
|
|||
if (++ti == tok.end())
|
||||
{
|
||||
// Wrong number of fields: blank current request
|
||||
current_request.clear() ;
|
||||
return current_request ;
|
||||
current_request->clear() ;
|
||||
return *current_request ;
|
||||
}
|
||||
try
|
||||
{
|
||||
|
@ -196,8 +196,8 @@ const Request& InputCSV::get_next_request()
|
|||
<< current_line_nb << ", position field #" << i
|
||||
<< ", of input file « " << input_file_name << " »!"
|
||||
<< endl ;
|
||||
current_request.clear() ; // Blank current request
|
||||
return current_request ;
|
||||
current_request->clear() ; // Blank current request
|
||||
return *current_request ;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -206,8 +206,8 @@ const Request& InputCSV::get_next_request()
|
|||
if (++ti == tok.end())
|
||||
{
|
||||
// Wrong number of fields: blank current request
|
||||
current_request.clear() ;
|
||||
return current_request ;
|
||||
current_request->clear() ;
|
||||
return *current_request ;
|
||||
}
|
||||
try
|
||||
{
|
||||
|
@ -222,8 +222,8 @@ const Request& InputCSV::get_next_request()
|
|||
<< *ti << " » at line "
|
||||
<< current_line_nb << ", field « Direction », of input file « "
|
||||
<< input_file_name << " »!" << endl ;
|
||||
current_request.clear() ; // Blank current request
|
||||
return current_request ;
|
||||
current_request->clear() ; // Blank current request
|
||||
return *current_request ;
|
||||
}
|
||||
|
||||
// Reading {MAC_AP;SS} couples
|
||||
|
@ -236,8 +236,8 @@ const Request& InputCSV::get_next_request()
|
|||
if (++ti == tok.end())
|
||||
{
|
||||
// Wrong number of fields: blank current request
|
||||
current_request.clear() ;
|
||||
return current_request ;
|
||||
current_request->clear() ;
|
||||
return *current_request ;
|
||||
}
|
||||
|
||||
int ss ;
|
||||
|
@ -253,8 +253,8 @@ const Request& InputCSV::get_next_request()
|
|||
<< current_line_nb
|
||||
<< " of input file « " << input_file_name << " »!"
|
||||
<< endl ;
|
||||
current_request.clear() ; // Blank current request
|
||||
return current_request ;
|
||||
current_request->clear() ; // Blank current request
|
||||
return *current_request ;
|
||||
}
|
||||
|
||||
// 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) ;
|
||||
}
|
||||
|
||||
current_request.set_measurements(measurements) ;
|
||||
current_request->set_measurements(measurements) ;
|
||||
|
||||
read_next_line() ;
|
||||
|
||||
if (is_calibration_request)
|
||||
{} // TODO
|
||||
|
||||
return current_request ;
|
||||
return *current_request ;
|
||||
}
|
||||
|
|
|
@ -12,15 +12,14 @@ class InputMedium
|
|||
{
|
||||
protected:
|
||||
/// The Request just read
|
||||
Request current_request ;
|
||||
Request *current_request ;
|
||||
/// Number of the current line proceeded
|
||||
unsigned long current_line_nb ;
|
||||
|
||||
public:
|
||||
/// Default constructor
|
||||
InputMedium(void) ;
|
||||
|
||||
virtual ~InputMedium(void) {} ///< Destructor (do nothing)
|
||||
virtual ~InputMedium(void) ;
|
||||
|
||||
/** @name Read accessors */
|
||||
//@{
|
||||
|
@ -63,17 +62,24 @@ public:
|
|||
|
||||
inline InputMedium::InputMedium()
|
||||
{
|
||||
current_request = new Request() ;
|
||||
current_line_nb = 0 ;
|
||||
}
|
||||
|
||||
|
||||
inline InputMedium::~InputMedium()
|
||||
{
|
||||
delete current_request ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* *** Read accessors *** */
|
||||
|
||||
|
||||
inline const Request& InputMedium::get_current_request() const
|
||||
{
|
||||
return current_request ;
|
||||
return *current_request ;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue