Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ set(osm2pgsql_lib_SOURCES
expire-tiles.cpp
gazetteer-style.cpp
geometry-processor.cpp
id-tracker.cpp
input-handler.cpp
logging.cpp
middle-pgsql.cpp
Expand Down
22 changes: 13 additions & 9 deletions src/dependency-manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,29 @@
#include "dependency-manager.hpp"
#include "middle.hpp"

#include <algorithm>
#include <iterator>

void full_dependency_manager_t::node_changed(osmid_t id)
{
for (auto const way_id : m_object_store->get_ways_by_node(id)) {
way_changed(way_id);
m_ways_pending_tracker.mark(way_id);
m_ways_pending_tracker.set(way_id);
}

for (auto const rel_id : m_object_store->get_rels_by_node(id)) {
m_rels_pending_tracker.mark(rel_id);
m_rels_pending_tracker.set(rel_id);
}
}

void full_dependency_manager_t::way_changed(osmid_t id)
{
if (m_ways_pending_tracker.is_marked(id)) {
if (m_ways_pending_tracker.get(id)) {
return;
}

for (auto const rel_id : m_object_store->get_rels_by_way(id)) {
m_rels_pending_tracker.mark(rel_id);
m_rels_pending_tracker.set(rel_id);
}
}

Expand All @@ -30,15 +33,16 @@ bool full_dependency_manager_t::has_pending() const noexcept
return !m_ways_pending_tracker.empty() || !m_rels_pending_tracker.empty();
}

idlist_t full_dependency_manager_t::get_ids(id_tracker &tracker)
idlist_t full_dependency_manager_t::get_ids(osmium::index::IdSetSmall<osmid_t> &tracker)
{
tracker.sort_unique();

idlist_t list;
list.reserve(tracker.size());

osmid_t id;
while (id_tracker::is_valid(id = tracker.pop_mark())) {
list.push_back(id);
}
std::copy(tracker.cbegin(), tracker.cend(), std::back_inserter(list));

tracker.clear();

return list;
}
9 changes: 5 additions & 4 deletions src/dependency-manager.hpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#ifndef OSM2PGSQL_DEPENDENCY_MANAGER_HPP
#define OSM2PGSQL_DEPENDENCY_MANAGER_HPP

#include "id-tracker.hpp"
#include "osmtypes.hpp"

#include <osmium/index/id_set.hpp>

#include <cassert>
#include <memory>

Expand Down Expand Up @@ -97,12 +98,12 @@ class full_dependency_manager_t : public dependency_manager_t
}

private:
static idlist_t get_ids(id_tracker &tracker);
static idlist_t get_ids(osmium::index::IdSetSmall<osmid_t> &tracker);

std::shared_ptr<middle_t> m_object_store;

id_tracker m_ways_pending_tracker;
id_tracker m_rels_pending_tracker;
osmium::index::IdSetSmall<osmid_t> m_ways_pending_tracker;
osmium::index::IdSetSmall<osmid_t> m_rels_pending_tracker;
};

#endif // OSM2PGSQL_DEPENDENCY_MANAGER_HPP
194 changes: 0 additions & 194 deletions src/id-tracker.cpp

This file was deleted.

52 changes: 0 additions & 52 deletions src/id-tracker.hpp

This file was deleted.