owlps/owlps-positioning/src/inputdatareader.cc

59 lines
1.3 KiB
C++
Raw Normal View History

#include "inputdatareader.hh"
#include "configuration.hh"
#include "posexcept.hh"
#include "topologyreadercsv.hh"
using namespace std ;
/* *** Constructors *** */
InputDataReader::InputDataReader()
{
initialise_topology_media() ;
}
/* *** Operations *** */
void InputDataReader::initialise_topology_media()
{
if (! Configuration::is_configured("data-input.topology-medium"))
return ;
const vector<string> &media_names =
Configuration::string_vector_value("data-input.topology-medium") ;
for (vector<string>::const_iterator i = media_names.begin() ;
i != media_names.end() ; ++i)
{
if (*i == "CSV")
initialise_topology_csv() ;
else
throw bad_configuration(
"The specified topology input medium « "+ *i +
" » is unknown!") ;
}
}
void InputDataReader::initialise_topology_csv()
{
if (! Configuration::is_configured("data-input.areas-csv-file"))
throw missing_configuration(
"No topology input CSV file specified for areas") ;
if (! Configuration::is_configured("data-input.waypoints-csv-file"))
throw missing_configuration(
"No topology input CSV file specified for waypoints") ;
TopologyReaderCSV(
Configuration::string_value("data-input.areas-csv-file"),
Configuration::string_value("data-input.waypoints-csv-file")) ;
}