Ejemplo n.º 1
0
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;
    }
}
Ejemplo n.º 2
0
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);
    };
  };
};