konzept_vereinfachte_db.txt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. base_file_name
  2. blocksize
  3. const size_of_Index
  4. .index_to_buf(Index)
  5. operator<(Index)
  6. const size_of_Head
  7. operator<(Head)
  8. .head_to_buf(Head)
  9. .index_of(Head)
  10. .index_of_buf()
  11. .id_of(Head)
  12. .id_of_buf()
  13. const size_of_Data
  14. .data_to_buf(Data)
  15. (Annahme: Interne Datenstruktur ist (Head, vector< Data >))
  16. struct Indexed_Ordered_Id_To_Many< Index, Head, Data > {
  17. .blocksize()
  18. .data_file()
  19. .index_file()
  20. .id_idx_file()
  21. {
  22. base_file_name
  23. }
  24. .size_of_buf()
  25. {
  26. const size_of_Head
  27. const size_of_Data
  28. }
  29. void flush_data(elem_begin(), elem_end())
  30. .block_index< Index >()
  31. .index_of()
  32. .size_of()
  33. .to_buf()
  34. .compare()
  35. .index_of_buf()
  36. .index_to_buf()
  37. void delete_insert(elem_begin(), elem_end())
  38. .block_index()
  39. .elem_begin()
  40. .elem_end()
  41. .index_of()
  42. .keep_this_elem()
  43. .compare()
  44. .size_of()
  45. .size_of_part()
  46. .to_buf()
  47. Ansatz mit to_delete, to_insert
  48. - Drei Durchläufe über die Datei, ggf. Nutzung des Caches
  49. void make_block_index()
  50. .block_index()
  51. .size_of_Index()
  52. .index_of_buf()
  53. .index_to_buf()
  54. void make_id_index()
  55. .first_new_block()
  56. .id_of_buf()
  57. void update_id_index(elem_begin(), elem_end())
  58. .first_new_block()
  59. .block_of_elem_begin()
  60. .elem_begin()
  61. .elem_end()
  62. .id_of()
  63. Container& select_by_id< Container >(ids_begin(), ids_end())
  64. .ids_begin()
  65. .ids_end()
  66. .process()
  67. Container& select_with_idx< Container >(idxs_begin(), idxs_end())
  68. pair< Container, Container >& select_with_idx_dbl_range< Container >(idxs_inside_begin(), idxs_inside_end(), idxs_border_begin(), idxs_border_end())
  69. .idxs_begin()
  70. .idxs_end()
  71. .block_notify()
  72. .process()
  73. select_all
  74. .process()
  75. count_with_idx
  76. .count_idx()
  77. ---
  78. zu den Wegen:
  79. - füge die Wege einschließlich Knoten in eine Map< Way_ > ein
  80. - erzeuge daraus die Node-Anfrage
  81. - leite aus dem Ergebnis die richtigen Indexe für die Ways ab