The SwappyItems Key-Values Store
Classes | Macros | Typedefs | Functions | Variables
ReadPbfData.cpp File Reference
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <utility>
#include <chrono>
#include <inttypes.h>
#include <vector>
#include <thread>
#include <atomic>
#include <csignal>
#include <unistd.h>
#include "SwappyItems.hpp"
#include "osmpbfreader.hpp"
#include "tools.hpp"
#include "Routing.hpp"

Classes

struct  NodeData
 
struct  WayData
 
struct  PlaceData
 

Macros

#define __STDC_FORMAT_MACROS
 
#define FILE_ITEMS   ( 7*1024)
 
#define FILE_MULTI   6
 
#define RAM_MULTI   9
 
#define BBITS   5
 
#define BMASK   ((BBITS+4)* FILE_ITEMS)
 

Typedefs

typedef uint64_t Key
 
typedef SwappyItems< Key, WayData, FILE_ITEMS, FILE_MULTI, RAM_MULTI, BBITS, BMASKSwappyItemsWAYS
 
typedef SwappyItems< Key, NodeData, FILE_ITEMS, FILE_MULTI, RAM_MULTI, BBITS, BMASKSwappyItemsNODES
 
typedef SwappyItems< Key, PlaceData, FILE_ITEMS, FILE_MULTI, RAM_MULTI, BBITS, BMASKSwappyItemsPLACES
 

Functions

int main (int argc, char **argv)
 

Variables

SwappyItemsWAYSways
 
SwappyItemsNODESnodes
 
SwappyItemsPLACESplaces
 
std::chrono::time_point< std::chrono::system_clock > start
 
double mseconds
 
atomic< bool > isPrinted = false
 

Macro Definition Documentation

◆ __STDC_FORMAT_MACROS

#define __STDC_FORMAT_MACROS

◆ BBITS

#define BBITS   5

◆ BMASK

#define BMASK   ((BBITS+4)* FILE_ITEMS)

◆ FILE_ITEMS

#define FILE_ITEMS   ( 7*1024)

◆ FILE_MULTI

#define FILE_MULTI   6

◆ RAM_MULTI

#define RAM_MULTI   9

Typedef Documentation

◆ Key

typedef uint64_t Key
Examples
ReadPbfData.cpp.

◆ SwappyItemsNODES

Examples
ReadPbfData.cpp.

◆ SwappyItemsPLACES

Examples
ReadPbfData.cpp.

◆ SwappyItemsWAYS

Examples
ReadPbfData.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)
Examples
ReadPbfData.cpp.
71  {
72  if(argc != 2) {
73  printf("Usage: %s file_to_read.osm.pbf\n", argv[0]);
74  return 1;
75  }
76 
77  ways = new SwappyItemsWAYS(23);
78  nodes = new SwappyItemsNODES(42);
79  places = new SwappyItemsPLACES(815);
80  Routing routing;
81 
82  logHead();
83  catchSig();
84 
85  start = std::chrono::high_resolution_clock::now();
86 
87  read_osm_pbf(argv[1], routing, true); // read way only
88 
89  auto now = std::chrono::high_resolution_clock::now();
90  mseconds = std::chrono::duration<double, std::milli>(now-start).count();
91  printf("# end ways: %.f ms\n", mseconds);
92 
93  read_osm_pbf(argv[1], routing, false); // read nodes and relations
94 
95  now = std::chrono::high_resolution_clock::now();
96  mseconds = std::chrono::duration<double, std::milli>(now-start).count();
97  printf("# end nodes: %.f ms\n", mseconds);
98 
99  delete places;
100  delete nodes;
101  delete ways;
102  return 0;
103 }
SwappyItemsPLACES * places
Definition: ReadPbfData.cpp:56
double mseconds
Definition: ReadPbfData.cpp:61
SwappyItemsNODES * nodes
Definition: ReadPbfData.cpp:55
SwappyItems< Key, WayData, FILE_ITEMS, FILE_MULTI, RAM_MULTI, BBITS, BMASK > SwappyItemsWAYS
Definition: ReadPbfData.cpp:51
SwappyItems< Key, NodeData, FILE_ITEMS, FILE_MULTI, RAM_MULTI, BBITS, BMASK > SwappyItemsNODES
Definition: ReadPbfData.cpp:52
SwappyItems< Key, PlaceData, FILE_ITEMS, FILE_MULTI, RAM_MULTI, BBITS, BMASK > SwappyItemsPLACES
Definition: ReadPbfData.cpp:53
std::chrono::time_point< std::chrono::system_clock > start
Definition: ReadPbfData.cpp:60
SwappyItemsWAYS * ways
Definition: ReadPbfData.cpp:54
void read_osm_pbf(const std::string &filename, Visitor &visitor, bool wayOnly)
Definition: osmpbfreader.hpp:359
Definition: osm2graph.cpp:120
void logHead()
Definition: tools.hpp:71
void catchSig()
Definition: tools.hpp:62

Variable Documentation

◆ isPrinted

atomic<bool> isPrinted = false
Examples
ReadPbfData.cpp.

◆ mseconds

double mseconds
Examples
ReadPbfData.cpp.

◆ nodes

Examples
ReadPbfData.cpp.

◆ places

Examples
ReadPbfData.cpp.

◆ start

std::chrono::time_point<std::chrono::system_clock> start
Examples
ReadPbfData.cpp.

◆ ways

Examples
ReadPbfData.cpp.