51 lines
895 B
C++
51 lines
895 B
C++
#include "mobilesreadercsv.hh"
|
|
#include "point3d.hh"
|
|
#include "stock.hh"
|
|
#include "posexcept.hh"
|
|
|
|
using namespace std ;
|
|
|
|
|
|
|
|
/* *** Constructors *** */
|
|
|
|
|
|
MobilesReaderCSV::MobilesReaderCSV(const string &file_name):
|
|
file(file_name)
|
|
{
|
|
read_devices() ;
|
|
}
|
|
|
|
|
|
|
|
/* *** Operations *** */
|
|
|
|
|
|
void MobilesReaderCSV::read_devices()
|
|
{
|
|
while (file.next_line())
|
|
process_device_line() ;
|
|
}
|
|
|
|
|
|
void MobilesReaderCSV::process_device_line()
|
|
{
|
|
string mac ;
|
|
if (! file.read_field(mac))
|
|
throw malformed_input_data("Cannot read mobile's MAC address!") ;
|
|
PosUtil::to_upper(mac) ;
|
|
|
|
float gain ;
|
|
if (! file.read_field(gain))
|
|
throw malformed_input_data("Cannot read mobile's gain!") ;
|
|
|
|
float power ;
|
|
if (! file.read_field(power))
|
|
throw malformed_input_data("Cannot read mobile's power!") ;
|
|
|
|
string ip("") ;
|
|
|
|
Mobile device(ip, mac, gain, power) ;
|
|
Stock::find_create_mobile(device) ;
|
|
}
|