Skip to content

Commit

Permalink
split tagtransform header into one file per class
Browse files Browse the repository at this point in the history
  • Loading branch information
lonvia committed Mar 11, 2017
1 parent 151dc13 commit 3cab8c8
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 71 deletions.
2 changes: 1 addition & 1 deletion tagtransform-c.cpp
Expand Up @@ -4,7 +4,7 @@

#include "options.hpp"
#include "taginfo_impl.hpp"
#include "tagtransform.hpp"
#include "tagtransform-c.hpp"
#include "wildcmp.hpp"

namespace {
Expand Down
28 changes: 28 additions & 0 deletions tagtransform-c.hpp
@@ -0,0 +1,28 @@
#ifndef TAGTRANSFORM_C_H
#define TAGTRANSFORM_C_H

#include "tagtransform.hpp"

class c_tagtransform_t : public tagtransform_t
{
public:
c_tagtransform_t(options_t const *options);

bool filter_tags(osmium::OSMObject const &o, int *polygon, int *roads,
export_list const &exlist, taglist_t &out_tags,
bool strict = false) override;

unsigned filter_rel_member_tags(taglist_t const &rel_tags,
multitaglist_t const &member_tags,
rolelist_t const &member_roles,
int *member_superseded, int *make_boundary,
int *make_polygon, int *roads,
export_list const &exlist,
taglist_t &out_tags,
bool allow_typeless = false) override;

private:
options_t const *m_options;
};

#endif // TAGTRANSFORM_C_H
12 changes: 6 additions & 6 deletions tagtransform-lua.cpp
Expand Up @@ -6,17 +6,17 @@ extern "C" {
#include <boost/format.hpp>

#include "options.hpp"
#include "tagtransform.hpp"
#include "tagtransform-lua.hpp"

lua_tagtransform_t::lua_tagtransform_t(options_t const *options)
: m_options(options), L(luaL_newstate()),
m_node_func(
options->tag_transform_node_func.get_value_or("filter_tags_node")),
: L(luaL_newstate()), m_node_func(options->tag_transform_node_func.get_value_or(
"filter_tags_node")),
m_way_func(options->tag_transform_way_func.get_value_or("filter_tags_way")),
m_rel_func(
options->tag_transform_rel_func.get_value_or("filter_basic_tags_rel")),
m_rel_mem_func(options->tag_transform_rel_mem_func.get_value_or(
"filter_tags_relation_member"))
"filter_tags_relation_member")),
m_extra_attributes(options->extra_attributes)
{
luaL_openlibs(L);
luaL_dofile(L, options->tag_transform_script->c_str());
Expand Down Expand Up @@ -69,7 +69,7 @@ bool lua_tagtransform_t::filter_tags(osmium::OSMObject const &o, int *polygon,
lua_rawset(L, -3);
++sz;
}
if (m_options->extra_attributes && o.version() > 0) {
if (m_extra_attributes && o.version() > 0) {
taglist_t tags;
tags.add_attributes(o);
for (auto const &t : tags) {
Expand Down
39 changes: 39 additions & 0 deletions tagtransform-lua.hpp
@@ -0,0 +1,39 @@
#ifndef TAGTRANSFORM_LUA_H
#define TAGTRANSFORM_LUA_H

#include <string>

#include "tagtransform.hpp"

extern "C" {
#include <lua.h>
}

class lua_tagtransform_t : public tagtransform_t
{
public:
lua_tagtransform_t(options_t const *options);
~lua_tagtransform_t();

bool filter_tags(osmium::OSMObject const &o, int *polygon, int *roads,
export_list const &exlist, taglist_t &out_tags,
bool strict = false) override;

unsigned filter_rel_member_tags(taglist_t const &rel_tags,
multitaglist_t const &member_tags,
rolelist_t const &member_roles,
int *member_superseded, int *make_boundary,
int *make_polygon, int *roads,
export_list const &exlist,
taglist_t &out_tags,
bool allow_typeless = false) override;

private:
void check_lua_function_exists(std::string const &func_name);

lua_State *L;
std::string m_node_func, m_way_func, m_rel_func, m_rel_mem_func;
bool m_extra_attributes;
};

#endif // TAGTRANSFORM_LUA_H
8 changes: 3 additions & 5 deletions tagtransform.cpp
@@ -1,12 +1,10 @@
#include "tagtransform.hpp"
#include "options.hpp"
#include "config.h"
#include "options.hpp"
#include "tagtransform-c.hpp"

#ifdef HAVE_LUA
extern "C" {
#include <lualib.h>
#include <lauxlib.h>
}
#include "tagtransform-lua.hpp"
#endif

std::unique_ptr<tagtransform_t>
Expand Down
59 changes: 0 additions & 59 deletions tagtransform.hpp
@@ -1,21 +1,13 @@

#ifndef TAGTRANSFORM_H
#define TAGTRANSFORM_H

#include "config.h"
#include "osmtypes.hpp"

#include <string>

struct options_t;
struct export_list;

#ifdef HAVE_LUA
extern "C" {
#include <lua.h>
}
#endif

class tagtransform_t
{
public:
Expand All @@ -36,55 +28,4 @@ class tagtransform_t
bool allow_typeless = false) = 0;
};

class c_tagtransform_t : public tagtransform_t
{
public:
c_tagtransform_t(options_t const *options);

bool filter_tags(osmium::OSMObject const &o, int *polygon, int *roads,
export_list const &exlist, taglist_t &out_tags,
bool strict = false) override;

unsigned filter_rel_member_tags(taglist_t const &rel_tags,
multitaglist_t const &member_tags,
rolelist_t const &member_roles,
int *member_superseded, int *make_boundary,
int *make_polygon, int *roads,
export_list const &exlist,
taglist_t &out_tags,
bool allow_typeless = false) override;

private:
options_t const *m_options;
};

#ifdef HAVE_LUA
class lua_tagtransform_t : public tagtransform_t
{
public:
lua_tagtransform_t(options_t const *options);
~lua_tagtransform_t();

bool filter_tags(osmium::OSMObject const &o, int *polygon, int *roads,
export_list const &exlist, taglist_t &out_tags,
bool strict = false) override;

unsigned filter_rel_member_tags(taglist_t const &rel_tags,
multitaglist_t const &member_tags,
rolelist_t const &member_roles,
int *member_superseded, int *make_boundary,
int *make_polygon, int *roads,
export_list const &exlist,
taglist_t &out_tags,
bool allow_typeless = false) override;

private:
void check_lua_function_exists(std::string const &func_name);

options_t const *m_options;
lua_State *L;
std::string m_node_func, m_way_func, m_rel_func, m_rel_mem_func;
};
#endif

#endif //TAGTRANSFORM_H

0 comments on commit 3cab8c8

Please sign in to comment.