diff options
| author | Rutger Broekhoff | 2024-05-02 20:27:40 +0200 |
|---|---|---|
| committer | Rutger Broekhoff | 2024-05-02 20:27:40 +0200 |
| commit | 17a3ea880402338420699e03bcb24181e4ff3924 (patch) | |
| tree | da666ef91e0b60d20aa0b01529644c136fd1f4ab /lib/libtmi8/src/kv1_index.cpp | |
| download | oeuf-17a3ea880402338420699e03bcb24181e4ff3924.tar.gz oeuf-17a3ea880402338420699e03bcb24181e4ff3924.zip | |
Initial commit
Based on dc4ba6a
Diffstat (limited to 'lib/libtmi8/src/kv1_index.cpp')
| -rw-r--r-- | lib/libtmi8/src/kv1_index.cpp | 461 |
1 files changed, 461 insertions, 0 deletions
diff --git a/lib/libtmi8/src/kv1_index.cpp b/lib/libtmi8/src/kv1_index.cpp new file mode 100644 index 0000000..23e9596 --- /dev/null +++ b/lib/libtmi8/src/kv1_index.cpp | |||
| @@ -0,0 +1,461 @@ | |||
| 1 | // vim:set sw=2 ts=2 sts et: | ||
| 2 | |||
| 3 | #include <tmi8/kv1_index.hpp> | ||
| 4 | |||
| 5 | Kv1Index::Kv1Index(Kv1Records *records) : records(records) { | ||
| 6 | organizational_units.reserve(records->organizational_units.size()); | ||
| 7 | for (size_t i = 0; i < records->organizational_units.size(); i++) { | ||
| 8 | auto *it = &records->organizational_units[i]; | ||
| 9 | organizational_units[it->key] = it; | ||
| 10 | } | ||
| 11 | higher_organizational_units.reserve(records->higher_organizational_units.size()); | ||
| 12 | for (size_t i = 0; i < records->higher_organizational_units.size(); i++) { | ||
| 13 | auto *it = &records->higher_organizational_units[i]; | ||
| 14 | higher_organizational_units[it->key] = it; | ||
| 15 | } | ||
| 16 | user_stop_points.reserve(records->user_stop_points.size()); | ||
| 17 | for (size_t i = 0; i < records->user_stop_points.size(); i++) { | ||
| 18 | auto *it = &records->user_stop_points[i]; | ||
| 19 | user_stop_points[it->key] = it; | ||
| 20 | } | ||
| 21 | user_stop_areas.reserve(records->user_stop_areas.size()); | ||
| 22 | for (size_t i = 0; i < records->user_stop_areas.size(); i++) { | ||
| 23 | auto *it = &records->user_stop_areas[i]; | ||
| 24 | user_stop_areas[it->key] = it; | ||
| 25 | } | ||
| 26 | timing_links.reserve(records->timing_links.size()); | ||
| 27 | for (size_t i = 0; i < records->timing_links.size(); i++) { | ||
| 28 | auto *it = &records->timing_links[i]; | ||
| 29 | timing_links[it->key] = it; | ||
| 30 | } | ||
| 31 | links.reserve(records->links.size()); | ||
| 32 | for (size_t i = 0; i < records->links.size(); i++) { | ||
| 33 | auto *it = &records->links[i]; | ||
| 34 | links[it->key] = it; | ||
| 35 | } | ||
| 36 | lines.reserve(records->lines.size()); | ||
| 37 | for (size_t i = 0; i < records->lines.size(); i++) { | ||
| 38 | auto *it = &records->lines[i]; | ||
| 39 | lines[it->key] = it; | ||
| 40 | } | ||
| 41 | destinations.reserve(records->destinations.size()); | ||
| 42 | for (size_t i = 0; i < records->destinations.size(); i++) { | ||
| 43 | auto *it = &records->destinations[i]; | ||
| 44 | destinations[it->key] = it; | ||
| 45 | } | ||
| 46 | journey_patterns.reserve(records->journey_patterns.size()); | ||
| 47 | for (size_t i = 0; i < records->journey_patterns.size(); i++) { | ||
| 48 | auto *it = &records->journey_patterns[i]; | ||
| 49 | journey_patterns[it->key] = it; | ||
| 50 | } | ||
| 51 | concession_financer_relations.reserve(records->concession_financer_relations.size()); | ||
| 52 | for (size_t i = 0; i < records->concession_financer_relations.size(); i++) { | ||
| 53 | auto *it = &records->concession_financer_relations[i]; | ||
| 54 | concession_financer_relations[it->key] = it; | ||
| 55 | } | ||
| 56 | concession_areas.reserve(records->concession_areas.size()); | ||
| 57 | for (size_t i = 0; i < records->concession_areas.size(); i++) { | ||
| 58 | auto *it = &records->concession_areas[i]; | ||
| 59 | concession_areas[it->key] = it; | ||
| 60 | } | ||
| 61 | financers.reserve(records->financers.size()); | ||
| 62 | for (size_t i = 0; i < records->financers.size(); i++) { | ||
| 63 | auto *it = &records->financers[i]; | ||
| 64 | financers[it->key] = it; | ||
| 65 | } | ||
| 66 | journey_pattern_timing_links.reserve(records->journey_pattern_timing_links.size()); | ||
| 67 | for (size_t i = 0; i < records->journey_pattern_timing_links.size(); i++) { | ||
| 68 | auto *it = &records->journey_pattern_timing_links[i]; | ||
| 69 | journey_pattern_timing_links[it->key] = it; | ||
| 70 | } | ||
| 71 | points.reserve(records->points.size()); | ||
| 72 | for (size_t i = 0; i < records->points.size(); i++) { | ||
| 73 | auto *it = &records->points[i]; | ||
| 74 | points[it->key] = it; | ||
| 75 | } | ||
| 76 | point_on_links.reserve(records->point_on_links.size()); | ||
| 77 | for (size_t i = 0; i < records->point_on_links.size(); i++) { | ||
| 78 | auto *it = &records->point_on_links[i]; | ||
| 79 | point_on_links[it->key] = it; | ||
| 80 | } | ||
| 81 | icons.reserve(records->icons.size()); | ||
| 82 | for (size_t i = 0; i < records->icons.size(); i++) { | ||
| 83 | auto *it = &records->icons[i]; | ||
| 84 | icons[it->key] = it; | ||
| 85 | } | ||
| 86 | notices.reserve(records->notices.size()); | ||
| 87 | for (size_t i = 0; i < records->notices.size(); i++) { | ||
| 88 | auto *it = &records->notices[i]; | ||
| 89 | notices[it->key] = it; | ||
| 90 | } | ||
| 91 | time_demand_groups.reserve(records->time_demand_groups.size()); | ||
| 92 | for (size_t i = 0; i < records->time_demand_groups.size(); i++) { | ||
| 93 | auto *it = &records->time_demand_groups[i]; | ||
| 94 | time_demand_groups[it->key] = it; | ||
| 95 | } | ||
| 96 | time_demand_group_run_times.reserve(records->time_demand_group_run_times.size()); | ||
| 97 | for (size_t i = 0; i < records->time_demand_group_run_times.size(); i++) { | ||
| 98 | auto *it = &records->time_demand_group_run_times[i]; | ||
| 99 | time_demand_group_run_times[it->key] = it; | ||
| 100 | } | ||
| 101 | period_groups.reserve(records->period_groups.size()); | ||
| 102 | for (size_t i = 0; i < records->period_groups.size(); i++) { | ||
| 103 | auto *it = &records->period_groups[i]; | ||
| 104 | period_groups[it->key] = it; | ||
| 105 | } | ||
| 106 | specific_days.reserve(records->specific_days.size()); | ||
| 107 | for (size_t i = 0; i < records->specific_days.size(); i++) { | ||
| 108 | auto *it = &records->specific_days[i]; | ||
| 109 | specific_days[it->key] = it; | ||
| 110 | } | ||
| 111 | timetable_versions.reserve(records->timetable_versions.size()); | ||
| 112 | for (size_t i = 0; i < records->timetable_versions.size(); i++) { | ||
| 113 | auto *it = &records->timetable_versions[i]; | ||
| 114 | timetable_versions[it->key] = it; | ||
| 115 | } | ||
| 116 | public_journeys.reserve(records->public_journeys.size()); | ||
| 117 | for (size_t i = 0; i < records->public_journeys.size(); i++) { | ||
| 118 | auto *it = &records->public_journeys[i]; | ||
| 119 | public_journeys[it->key] = it; | ||
| 120 | } | ||
| 121 | period_group_validities.reserve(records->period_group_validities.size()); | ||
| 122 | for (size_t i = 0; i < records->period_group_validities.size(); i++) { | ||
| 123 | auto *it = &records->period_group_validities[i]; | ||
| 124 | period_group_validities[it->key] = it; | ||
| 125 | } | ||
| 126 | exceptional_operating_days.reserve(records->exceptional_operating_days.size()); | ||
| 127 | for (size_t i = 0; i < records->exceptional_operating_days.size(); i++) { | ||
| 128 | auto *it = &records->exceptional_operating_days[i]; | ||
| 129 | exceptional_operating_days[it->key] = it; | ||
| 130 | } | ||
| 131 | schedule_versions.reserve(records->schedule_versions.size()); | ||
| 132 | for (size_t i = 0; i < records->schedule_versions.size(); i++) { | ||
| 133 | auto *it = &records->schedule_versions[i]; | ||
| 134 | schedule_versions[it->key] = it; | ||
| 135 | } | ||
| 136 | public_journey_passing_times.reserve(records->public_journey_passing_times.size()); | ||
| 137 | for (size_t i = 0; i < records->public_journey_passing_times.size(); i++) { | ||
| 138 | auto *it = &records->public_journey_passing_times[i]; | ||
| 139 | public_journey_passing_times[it->key] = it; | ||
| 140 | } | ||
| 141 | operating_days.reserve(records->operating_days.size()); | ||
| 142 | for (size_t i = 0; i < records->operating_days.size(); i++) { | ||
| 143 | auto *it = &records->operating_days[i]; | ||
| 144 | operating_days[it->key] = it; | ||
| 145 | } | ||
| 146 | } | ||
| 147 | |||
| 148 | size_t Kv1Index::size() const { | ||
| 149 | return organizational_units.size() | ||
| 150 | + higher_organizational_units.size() | ||
| 151 | + user_stop_points.size() | ||
| 152 | + user_stop_areas.size() | ||
| 153 | + timing_links.size() | ||
| 154 | + links.size() | ||
| 155 | + lines.size() | ||
| 156 | + destinations.size() | ||
| 157 | + journey_patterns.size() | ||
| 158 | + concession_financer_relations.size() | ||
| 159 | + concession_areas.size() | ||
| 160 | + financers.size() | ||
| 161 | + journey_pattern_timing_links.size() | ||
| 162 | + points.size() | ||
| 163 | + point_on_links.size() | ||
| 164 | + icons.size() | ||
| 165 | + notices.size() | ||
| 166 | + time_demand_groups.size() | ||
| 167 | + time_demand_group_run_times.size() | ||
| 168 | + period_groups.size() | ||
| 169 | + specific_days.size() | ||
| 170 | + timetable_versions.size() | ||
| 171 | + public_journeys.size() | ||
| 172 | + period_group_validities.size() | ||
| 173 | + exceptional_operating_days.size() | ||
| 174 | + schedule_versions.size() | ||
| 175 | + public_journey_passing_times.size() | ||
| 176 | + operating_days.size(); | ||
| 177 | } | ||
| 178 | |||
| 179 | void kv1LinkRecords(Kv1Index &index) { | ||
| 180 | for (auto &orunorun : index.records->higher_organizational_units) { | ||
| 181 | Kv1OrganizationalUnit::Key orun_parent_key( | ||
| 182 | orunorun.key.data_owner_code, | ||
| 183 | orunorun.key.organizational_unit_code_parent); | ||
| 184 | Kv1OrganizationalUnit::Key orun_child_key( | ||
| 185 | orunorun.key.data_owner_code, | ||
| 186 | orunorun.key.organizational_unit_code_child); | ||
| 187 | orunorun.p_organizational_unit_parent = index.organizational_units[orun_parent_key]; | ||
| 188 | orunorun.p_organizational_unit_child = index.organizational_units[orun_child_key]; | ||
| 189 | } | ||
| 190 | for (auto &usrstop : index.records->user_stop_points) { | ||
| 191 | Kv1Point::Key point_key( | ||
| 192 | usrstop.key.data_owner_code, | ||
| 193 | usrstop.key.user_stop_code); | ||
| 194 | usrstop.p_point = index.points[point_key]; | ||
| 195 | if (!usrstop.user_stop_area_code.empty()) { | ||
| 196 | Kv1UserStopArea::Key usrstar_key( | ||
| 197 | usrstop.key.data_owner_code, | ||
| 198 | usrstop.user_stop_area_code); | ||
| 199 | usrstop.p_user_stop_area = index.user_stop_areas[usrstar_key]; | ||
| 200 | } | ||
| 201 | } | ||
| 202 | for (auto &tili : index.records->timing_links) { | ||
| 203 | Kv1UserStopPoint::Key usrstop_begin_key( | ||
| 204 | tili.key.data_owner_code, | ||
| 205 | tili.key.user_stop_code_begin); | ||
| 206 | Kv1UserStopPoint::Key usrstop_end_key( | ||
| 207 | tili.key.data_owner_code, | ||
| 208 | tili.key.user_stop_code_end); | ||
| 209 | tili.p_user_stop_begin = index.user_stop_points[usrstop_begin_key]; | ||
| 210 | tili.p_user_stop_end = index.user_stop_points[usrstop_end_key]; | ||
| 211 | } | ||
| 212 | for (auto &link : index.records->links) { | ||
| 213 | Kv1UserStopPoint::Key usrstop_begin_key( | ||
| 214 | link.key.data_owner_code, | ||
| 215 | link.key.user_stop_code_begin); | ||
| 216 | Kv1UserStopPoint::Key usrstop_end_key( | ||
| 217 | link.key.data_owner_code, | ||
| 218 | link.key.user_stop_code_end); | ||
| 219 | link.p_user_stop_begin = index.user_stop_points[usrstop_begin_key]; | ||
| 220 | link.p_user_stop_end = index.user_stop_points[usrstop_end_key]; | ||
| 221 | } | ||
| 222 | for (auto &line : index.records->lines) { | ||
| 223 | if (!line.line_icon) | ||
| 224 | continue; | ||
| 225 | Kv1Icon::Key icon_key( | ||
| 226 | line.key.data_owner_code, | ||
| 227 | *line.line_icon); | ||
| 228 | line.p_line_icon = index.icons[icon_key]; | ||
| 229 | } | ||
| 230 | for (auto &jopa : index.records->journey_patterns) { | ||
| 231 | Kv1Line::Key line_key( | ||
| 232 | jopa.key.data_owner_code, | ||
| 233 | jopa.key.line_planning_number); | ||
| 234 | jopa.p_line = index.lines[line_key]; | ||
| 235 | } | ||
| 236 | for (auto &confinrel : index.records->concession_financer_relations) { | ||
| 237 | Kv1ConcessionArea::Key conarea_key( | ||
| 238 | confinrel.key.data_owner_code, | ||
| 239 | confinrel.concession_area_code); | ||
| 240 | confinrel.p_concession_area = index.concession_areas[conarea_key]; | ||
| 241 | if (!confinrel.financer_code.empty()) { | ||
| 242 | Kv1Financer::Key financer_key( | ||
| 243 | confinrel.key.data_owner_code, | ||
| 244 | confinrel.financer_code); | ||
| 245 | confinrel.p_financer = index.financers[financer_key]; | ||
| 246 | } | ||
| 247 | } | ||
| 248 | for (auto &jopatili : index.records->journey_pattern_timing_links) { | ||
| 249 | Kv1Line::Key line_key( | ||
| 250 | jopatili.key.data_owner_code, | ||
| 251 | jopatili.key.line_planning_number); | ||
| 252 | Kv1JourneyPattern::Key jopa_key( | ||
| 253 | jopatili.key.data_owner_code, | ||
| 254 | jopatili.key.line_planning_number, | ||
| 255 | jopatili.key.journey_pattern_code); | ||
| 256 | Kv1UserStopPoint::Key usrstop_begin_key( | ||
| 257 | jopatili.key.data_owner_code, | ||
| 258 | jopatili.user_stop_code_begin); | ||
| 259 | Kv1UserStopPoint::Key usrstop_end_key( | ||
| 260 | jopatili.key.data_owner_code, | ||
| 261 | jopatili.user_stop_code_end); | ||
| 262 | Kv1ConcessionFinancerRelation::Key confinrel_key( | ||
| 263 | jopatili.key.data_owner_code, | ||
| 264 | jopatili.con_fin_rel_code); | ||
| 265 | Kv1Destination::Key dest_key( | ||
| 266 | jopatili.key.data_owner_code, | ||
| 267 | jopatili.dest_code); | ||
| 268 | jopatili.p_line = index.lines[line_key]; | ||
| 269 | jopatili.p_journey_pattern = index.journey_patterns[jopa_key]; | ||
| 270 | jopatili.p_user_stop_begin = index.user_stop_points[usrstop_begin_key]; | ||
| 271 | jopatili.p_user_stop_end = index.user_stop_points[usrstop_end_key]; | ||
| 272 | jopatili.p_con_fin_rel = index.concession_financer_relations[confinrel_key]; | ||
| 273 | jopatili.p_dest = index.destinations[dest_key]; | ||
| 274 | if (jopatili.line_dest_icon) { | ||
| 275 | Kv1Icon::Key icon_key{ | ||
| 276 | jopatili.key.data_owner_code, | ||
| 277 | *jopatili.line_dest_icon, | ||
| 278 | }; | ||
| 279 | jopatili.p_line_dest_icon = index.icons[icon_key]; | ||
| 280 | } | ||
| 281 | } | ||
| 282 | for (auto &pool : index.records->point_on_links) { | ||
| 283 | Kv1UserStopPoint::Key usrstop_begin_key( | ||
| 284 | pool.key.data_owner_code, | ||
| 285 | pool.key.user_stop_code_begin); | ||
| 286 | Kv1UserStopPoint::Key usrstop_end_key( | ||
| 287 | pool.key.data_owner_code, | ||
| 288 | pool.key.user_stop_code_end); | ||
| 289 | Kv1Point::Key point_key( | ||
| 290 | pool.key.point_data_owner_code, | ||
| 291 | pool.key.point_code); | ||
| 292 | pool.p_user_stop_begin = index.user_stop_points[usrstop_begin_key]; | ||
| 293 | pool.p_user_stop_end = index.user_stop_points[usrstop_end_key]; | ||
| 294 | pool.p_point = index.points[point_key]; | ||
| 295 | } | ||
| 296 | for (auto &ntcassgnm : index.records->notice_assignments) { | ||
| 297 | Kv1Notice::Key notice_key( | ||
| 298 | ntcassgnm.data_owner_code, | ||
| 299 | ntcassgnm.notice_code); | ||
| 300 | ntcassgnm.p_notice = index.notices[notice_key]; | ||
| 301 | } | ||
| 302 | for (auto &timdemgrp : index.records->time_demand_groups) { | ||
| 303 | Kv1Line::Key line_key( | ||
| 304 | timdemgrp.key.data_owner_code, | ||
| 305 | timdemgrp.key.line_planning_number); | ||
| 306 | Kv1JourneyPattern::Key jopa_key( | ||
| 307 | timdemgrp.key.data_owner_code, | ||
| 308 | timdemgrp.key.line_planning_number, | ||
| 309 | timdemgrp.key.journey_pattern_code); | ||
| 310 | timdemgrp.p_line = index.lines[line_key]; | ||
| 311 | timdemgrp.p_journey_pattern = index.journey_patterns[jopa_key]; | ||
| 312 | } | ||
| 313 | for (auto &timdemrnt : index.records->time_demand_group_run_times) { | ||
| 314 | Kv1Line::Key line_key( | ||
| 315 | timdemrnt.key.data_owner_code, | ||
| 316 | timdemrnt.key.line_planning_number); | ||
| 317 | Kv1JourneyPattern::Key jopa_key( | ||
| 318 | timdemrnt.key.data_owner_code, | ||
| 319 | timdemrnt.key.line_planning_number, | ||
| 320 | timdemrnt.key.journey_pattern_code); | ||
| 321 | Kv1TimeDemandGroup::Key timdemgrp_key( | ||
| 322 | timdemrnt.key.data_owner_code, | ||
| 323 | timdemrnt.key.line_planning_number, | ||
| 324 | timdemrnt.key.journey_pattern_code, | ||
| 325 | timdemrnt.key.time_demand_group_code); | ||
| 326 | Kv1UserStopPoint::Key usrstop_begin_key( | ||
| 327 | timdemrnt.key.data_owner_code, | ||
| 328 | timdemrnt.user_stop_code_begin); | ||
| 329 | Kv1UserStopPoint::Key usrstop_end_key( | ||
| 330 | timdemrnt.key.data_owner_code, | ||
| 331 | timdemrnt.user_stop_code_end); | ||
| 332 | Kv1JourneyPatternTimingLink::Key jopatili_key( | ||
| 333 | timdemrnt.key.data_owner_code, | ||
| 334 | timdemrnt.key.line_planning_number, | ||
| 335 | timdemrnt.key.journey_pattern_code, | ||
| 336 | timdemrnt.key.timing_link_order); | ||
| 337 | timdemrnt.p_line = index.lines[line_key]; | ||
| 338 | timdemrnt.p_user_stop_end = index.user_stop_points[usrstop_end_key]; | ||
| 339 | timdemrnt.p_user_stop_begin = index.user_stop_points[usrstop_begin_key]; | ||
| 340 | timdemrnt.p_journey_pattern = index.journey_patterns[jopa_key]; | ||
| 341 | timdemrnt.p_time_demand_group = index.time_demand_groups[timdemgrp_key]; | ||
| 342 | timdemrnt.p_journey_pattern_timing_link = index.journey_pattern_timing_links[jopatili_key]; | ||
| 343 | } | ||
| 344 | for (auto &tive : index.records->timetable_versions) { | ||
| 345 | Kv1OrganizationalUnit::Key orun_key( | ||
| 346 | tive.key.data_owner_code, | ||
| 347 | tive.key.organizational_unit_code); | ||
| 348 | Kv1PeriodGroup::Key pegr_key( | ||
| 349 | tive.key.data_owner_code, | ||
| 350 | tive.key.period_group_code); | ||
| 351 | Kv1SpecificDay::Key specday_key( | ||
| 352 | tive.key.data_owner_code, | ||
| 353 | tive.key.specific_day_code); | ||
| 354 | tive.p_organizational_unit = index.organizational_units[orun_key]; | ||
| 355 | tive.p_period_group = index.period_groups[pegr_key]; | ||
| 356 | tive.p_specific_day = index.specific_days[specday_key]; | ||
| 357 | } | ||
| 358 | for (auto &pujo : index.records->public_journeys) { | ||
| 359 | Kv1TimetableVersion::Key tive_key( | ||
| 360 | pujo.key.data_owner_code, | ||
| 361 | pujo.key.organizational_unit_code, | ||
| 362 | pujo.key.timetable_version_code, | ||
| 363 | pujo.key.period_group_code, | ||
| 364 | pujo.key.specific_day_code); | ||
| 365 | Kv1OrganizationalUnit::Key orun_key( | ||
| 366 | pujo.key.data_owner_code, | ||
| 367 | pujo.key.organizational_unit_code); | ||
| 368 | Kv1PeriodGroup::Key pegr_key( | ||
| 369 | pujo.key.data_owner_code, | ||
| 370 | pujo.key.period_group_code); | ||
| 371 | Kv1SpecificDay::Key specday_key( | ||
| 372 | pujo.key.data_owner_code, | ||
| 373 | pujo.key.specific_day_code); | ||
| 374 | Kv1Line::Key line_key( | ||
| 375 | pujo.key.data_owner_code, | ||
| 376 | pujo.key.line_planning_number); | ||
| 377 | Kv1TimeDemandGroup::Key timdemgrp_key( | ||
| 378 | pujo.key.data_owner_code, | ||
| 379 | pujo.key.line_planning_number, | ||
| 380 | pujo.journey_pattern_code, | ||
| 381 | pujo.time_demand_group_code); | ||
| 382 | Kv1JourneyPattern::Key jopa_key( | ||
| 383 | pujo.key.data_owner_code, | ||
| 384 | pujo.key.line_planning_number, | ||
| 385 | pujo.journey_pattern_code); | ||
| 386 | pujo.p_timetable_version = index.timetable_versions[tive_key]; | ||
| 387 | pujo.p_organizational_unit = index.organizational_units[orun_key]; | ||
| 388 | pujo.p_period_group = index.period_groups[pegr_key]; | ||
| 389 | pujo.p_specific_day = index.specific_days[specday_key]; | ||
| 390 | pujo.p_line = index.lines[line_key]; | ||
| 391 | pujo.p_time_demand_group = index.time_demand_groups[timdemgrp_key]; | ||
| 392 | pujo.p_journey_pattern = index.journey_patterns[jopa_key]; | ||
| 393 | } | ||
| 394 | for (auto &pegrval : index.records->period_group_validities) { | ||
| 395 | Kv1OrganizationalUnit::Key orun_key( | ||
| 396 | pegrval.key.data_owner_code, | ||
| 397 | pegrval.key.organizational_unit_code); | ||
| 398 | Kv1PeriodGroup::Key pegr_key( | ||
| 399 | pegrval.key.data_owner_code, | ||
| 400 | pegrval.key.period_group_code); | ||
| 401 | pegrval.p_organizational_unit = index.organizational_units[orun_key]; | ||
| 402 | pegrval.p_period_group = index.period_groups[pegr_key]; | ||
| 403 | } | ||
| 404 | for (auto &excopday : index.records->exceptional_operating_days) { | ||
| 405 | Kv1OrganizationalUnit::Key orun_key( | ||
| 406 | excopday.key.data_owner_code, | ||
| 407 | excopday.key.organizational_unit_code); | ||
| 408 | Kv1SpecificDay::Key specday_key( | ||
| 409 | excopday.key.data_owner_code, | ||
| 410 | excopday.specific_day_code); | ||
| 411 | Kv1PeriodGroup::Key pegr_key( | ||
| 412 | excopday.key.data_owner_code, | ||
| 413 | excopday.period_group_code); | ||
| 414 | excopday.p_organizational_unit = index.organizational_units[orun_key]; | ||
| 415 | excopday.p_specific_day = index.specific_days[specday_key]; | ||
| 416 | excopday.p_period_group = index.period_groups[pegr_key]; | ||
| 417 | } | ||
| 418 | for (auto &schedvers : index.records->schedule_versions) { | ||
| 419 | Kv1OrganizationalUnit::Key orun_key( | ||
| 420 | schedvers.key.data_owner_code, | ||
| 421 | schedvers.key.organizational_unit_code); | ||
| 422 | schedvers.p_organizational_unit = index.organizational_units[orun_key]; | ||
| 423 | } | ||
| 424 | for (auto &pujopass : index.records->public_journey_passing_times) { | ||
| 425 | Kv1OrganizationalUnit::Key orun_key( | ||
| 426 | pujopass.key.data_owner_code, | ||
| 427 | pujopass.key.organizational_unit_code); | ||
| 428 | Kv1ScheduleVersion::Key schedvers_key( | ||
| 429 | pujopass.key.data_owner_code, | ||
| 430 | pujopass.key.organizational_unit_code, | ||
| 431 | pujopass.key.schedule_code, | ||
| 432 | pujopass.key.schedule_type_code); | ||
| 433 | Kv1Line::Key line_key( | ||
| 434 | pujopass.key.data_owner_code, | ||
| 435 | pujopass.key.line_planning_number); | ||
| 436 | Kv1JourneyPattern::Key jopa_key( | ||
| 437 | pujopass.key.data_owner_code, | ||
| 438 | pujopass.key.line_planning_number, | ||
| 439 | pujopass.journey_pattern_code); | ||
| 440 | Kv1UserStopPoint::Key usrstop_key( | ||
| 441 | pujopass.key.data_owner_code, | ||
| 442 | pujopass.user_stop_code); | ||
| 443 | pujopass.p_organizational_unit = index.organizational_units[orun_key]; | ||
| 444 | pujopass.p_schedule_version = index.schedule_versions[schedvers_key]; | ||
| 445 | pujopass.p_line = index.lines[line_key]; | ||
| 446 | pujopass.p_journey_pattern = index.journey_patterns[jopa_key]; | ||
| 447 | pujopass.p_user_stop = index.user_stop_points[usrstop_key]; | ||
| 448 | } | ||
| 449 | for (auto &operday : index.records->operating_days) { | ||
| 450 | Kv1OrganizationalUnit::Key orun_key( | ||
| 451 | operday.key.data_owner_code, | ||
| 452 | operday.key.organizational_unit_code); | ||
| 453 | Kv1ScheduleVersion::Key schedvers_key( | ||
| 454 | operday.key.data_owner_code, | ||
| 455 | operday.key.organizational_unit_code, | ||
| 456 | operday.key.schedule_code, | ||
| 457 | operday.key.schedule_type_code); | ||
| 458 | operday.p_organizational_unit = index.organizational_units[orun_key]; | ||
| 459 | operday.p_schedule_version = index.schedule_versions[schedvers_key]; | ||
| 460 | } | ||
| 461 | } | ||