summaryrefslogtreecommitdiff
path: root/tagstats
diff options
context:
space:
mode:
authorJochen Topf <jochen@topf.org>2011-05-10 11:36:46 +0200
committerJochen Topf <jochen@topf.org>2011-05-10 11:36:46 +0200
commita949c44e4f9a3a2b6cc5e15fdcbd22a31d290640 (patch)
tree1a97868235f0cc79aa576ed5821076ffa6df0fc5 /tagstats
parent9f35520f1836182907210f85e1bc03ec3942c253 (diff)
downloadtaginfo-a949c44e4f9a3a2b6cc5e15fdcbd22a31d290640.tar
taginfo-a949c44e4f9a3a2b6cc5e15fdcbd22a31d290640.tar.gz
Remove use of callback_object()
Diffstat (limited to 'tagstats')
-rw-r--r--tagstats/tagstats.cpp8
-rw-r--r--tagstats/tagstats_handler.hpp38
2 files changed, 28 insertions, 18 deletions
diff --git a/tagstats/tagstats.cpp b/tagstats/tagstats.cpp
index c2fa7b0..f82c92c 100644
--- a/tagstats/tagstats.cpp
+++ b/tagstats/tagstats.cpp
@@ -26,13 +26,9 @@ public:
osmium_handler_tagstats.callback_before_nodes();
}
- void callback_object(Osmium::OSM::Object *object) {
- osmium_handler_stats.callback_object(object);
- osmium_handler_tagstats.callback_object(object);
- }
-
void callback_node(Osmium::OSM::Node *node) {
osmium_handler_stats.callback_node(node);
+ osmium_handler_tagstats.callback_node(node);
// osmium_handler_node_location_store.callback_node(node);
}
@@ -46,6 +42,7 @@ public:
void callback_way(Osmium::OSM::Way *way) {
osmium_handler_stats.callback_way(way);
+ osmium_handler_tagstats.callback_way(way);
// osmium_handler_node_location_store.callback_way(way);
}
@@ -59,6 +56,7 @@ public:
void callback_relation(Osmium::OSM::Relation *relation) {
osmium_handler_stats.callback_relation(relation);
+ osmium_handler_tagstats.callback_relation(relation);
}
void callback_after_relations() {
diff --git a/tagstats/tagstats_handler.hpp b/tagstats/tagstats_handler.hpp
index dcd23d9..17119fc 100644
--- a/tagstats/tagstats_handler.hpp
+++ b/tagstats/tagstats_handler.hpp
@@ -233,19 +233,7 @@ class TagStatsHandler : public Osmium::Handler::Base {
}
-public:
-
- TagStatsHandler() : Base(), max_timestamp(0) {
- string_store = new StringStore(string_store_size);
- db = new Osmium::Sqlite::Database("taginfo-db.db");
- }
-
- ~TagStatsHandler() {
- delete db;
- delete string_store;
- }
-
- void callback_object(Osmium::OSM::Object *object) {
+ void collect_tag_stats(Osmium::OSM::Object *object) {
if (max_timestamp < object->get_timestamp()) {
max_timestamp = object->get_timestamp();
}
@@ -270,6 +258,30 @@ public:
#endif // TAGSTATS_COUNT_KEY_COMBINATIONS
}
+public:
+
+ TagStatsHandler() : Base(), max_timestamp(0) {
+ string_store = new StringStore(string_store_size);
+ db = new Osmium::Sqlite::Database("taginfo-db.db");
+ }
+
+ ~TagStatsHandler() {
+ delete db;
+ delete string_store;
+ }
+
+ void callback_node(Osmium::OSM::Node *node) {
+ collect_tag_stats(node);
+ }
+
+ void callback_way(Osmium::OSM::Way *way) {
+ collect_tag_stats(way);
+ }
+
+ void callback_relation(Osmium::OSM::Relation *relation) {
+ collect_tag_stats(relation);
+ }
+
void callback_before_nodes() {
timer = time(0);
}