int main (int argc, char **argv) { int cnt; if (argc < 4 || argc > 5) { Usage(); return 1; } std::string etable = argv[1]; std::string vtable = argv[2]; std::string rtable = argv[3]; std::string fnames = etable + ".osrm.names"; std::string fosrm = etable + ".osrm"; std::string frestrict = etable + ".osrm.restrictions"; const char *dbconn = "dbname=osrm_test user=postgres host=localhost"; if (argc == 5) dbconn = argv[4]; try { pqxx::connection conn( dbconn ); pqxx::work txn(conn); txn.exec( "set client_min_messages to warning" ); txn.commit(); std::cout << " Creating names table ...\n"; createNames( conn, etable ); std::cout << " Writing " << fnames << " file ... "; cnt = writeNames( conn, fnames, etable ); std::cout << cnt << " records\n"; std::ofstream out( fosrm.c_str(), std::ios::out | std::ios::binary ); writeHeader( out ); std::cout << " Writing vertices to " << fosrm << " file ... "; cnt = writeVertices( conn, out, vtable ); std::cout << cnt << " records\n"; std::cout << " Writing edges to " << fosrm << " file ... "; cnt = writeEdges( conn, out, etable ); std::cout << cnt << " records\n"; out.close(); std::cout << " Writing restrictions to " << frestrict << " file ... "; cnt = writeRestrictions( conn, frestrict, rtable ); std::cout << cnt << " records\n"; std::cout << " Done!\n"; } catch (const std::exception &e) { std::cerr << e.what() << std::endl; return 1; } }
void ssv_recorder::setStreamImpl(const shared_ptr<std::ostream>& aStreamPtr) { if(colCount != 0) { *this << close; if((aStreamPtr) && (*aStreamPtr)) { ReaKaux::unique_lock< ReaKaux::mutex > lock_here(access_mutex); out_stream = aStreamPtr; out_stream->setf(std::ios::scientific, std::ios::floatfield); out_stream->precision(11); colCount = names.size(); lock_here.unlock(); writeNames(); }; } else { if((aStreamPtr) && (*aStreamPtr)) { ReaKaux::unique_lock< ReaKaux::mutex > lock_here(access_mutex); out_stream = aStreamPtr; out_stream->setf(std::ios::scientific, std::ios::floatfield); out_stream->precision(11); }; }; };