diff options
Diffstat (limited to 'odb/traversal')
-rw-r--r-- | odb/traversal/relational.hxx | 2 | ||||
-rw-r--r-- | odb/traversal/relational/changelog.cxx | 64 | ||||
-rw-r--r-- | odb/traversal/relational/changelog.hxx | 54 | ||||
-rw-r--r-- | odb/traversal/relational/changeset.hxx | 19 | ||||
-rw-r--r-- | odb/traversal/relational/key.cxx | 18 | ||||
-rw-r--r-- | odb/traversal/relational/key.hxx | 9 | ||||
-rw-r--r-- | odb/traversal/relational/table.hxx | 1 |
7 files changed, 167 insertions, 0 deletions
diff --git a/odb/traversal/relational.hxx b/odb/traversal/relational.hxx index cf40404..96962b3 100644 --- a/odb/traversal/relational.hxx +++ b/odb/traversal/relational.hxx @@ -5,6 +5,8 @@ #ifndef ODB_TRAVERSAL_RELATIONAL_HXX #define ODB_TRAVERSAL_RELATIONAL_HXX +#include <odb/traversal/relational/changelog.hxx> +#include <odb/traversal/relational/changeset.hxx> #include <odb/traversal/relational/column.hxx> #include <odb/traversal/relational/elements.hxx> #include <odb/traversal/relational/foreign-key.hxx> diff --git a/odb/traversal/relational/changelog.cxx b/odb/traversal/relational/changelog.cxx new file mode 100644 index 0000000..715e271 --- /dev/null +++ b/odb/traversal/relational/changelog.cxx @@ -0,0 +1,64 @@ +// file : odb/traversal/relational/changelog.cxx +// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +// license : GNU GPL v3; see accompanying LICENSE file + +#include <odb/traversal/relational/changelog.hxx> +#include <odb/traversal/relational/model.hxx> +#include <odb/traversal/relational/changeset.hxx> + +namespace traversal +{ + namespace relational + { + // contains_model + // + void contains_model:: + traverse (type& c) + { + dispatch (c.model ()); + } + + // contains_changeset + // + void contains_changeset:: + traverse (type& c) + { + dispatch (c.changeset ()); + } + + // changelog + // + void changelog:: + traverse (type& cl) + { + contains_model (cl); + contains_changeset (cl); + } + + void changelog:: + contains_model (type& cl) + { + contains_model (cl, *this); + } + + void changelog:: + contains_model (type& cl, edge_dispatcher& d) + { + d.dispatch (cl.contains_model ()); + } + + void changelog:: + contains_changeset (type& cl) + { + contains_changeset (cl, *this); + } + + void changelog:: + contains_changeset (type& cl, edge_dispatcher& d) + { + iterate_and_dispatch (cl.contains_changeset_begin (), + cl.contains_changeset_end (), + d); + } + } +} diff --git a/odb/traversal/relational/changelog.hxx b/odb/traversal/relational/changelog.hxx new file mode 100644 index 0000000..2b3a132 --- /dev/null +++ b/odb/traversal/relational/changelog.hxx @@ -0,0 +1,54 @@ +// file : odb/traversal/relational/changelog.hxx +// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +// license : GNU GPL v3; see accompanying LICENSE file + +#ifndef ODB_TRAVERSAL_RELATIONAL_CHANGELOG_HXX +#define ODB_TRAVERSAL_RELATIONAL_CHANGELOG_HXX + +#include <odb/semantics/relational/changelog.hxx> +#include <odb/traversal/relational/elements.hxx> + +namespace traversal +{ + namespace relational + { + struct contains_model: edge<semantics::relational::contains_model> + { + contains_model () {} + contains_model (node_dispatcher& n) {node_traverser (n);} + + virtual void + traverse (type&); + }; + + struct contains_changeset: edge<semantics::relational::contains_changeset> + { + contains_changeset () {} + contains_changeset (node_dispatcher& n) {node_traverser (n);} + + virtual void + traverse (type&); + }; + + struct changelog: node<semantics::relational::changelog> + { + public: + virtual void + traverse (type&); + + virtual void + contains_model (type&); + + virtual void + contains_model (type&, edge_dispatcher&); + + virtual void + contains_changeset (type&); + + virtual void + contains_changeset (type&, edge_dispatcher&); + }; + } +} + +#endif // ODB_TRAVERSAL_RELATIONAL_CHANGELOG_HXX diff --git a/odb/traversal/relational/changeset.hxx b/odb/traversal/relational/changeset.hxx new file mode 100644 index 0000000..79e064a --- /dev/null +++ b/odb/traversal/relational/changeset.hxx @@ -0,0 +1,19 @@ +// file : odb/traversal/relational/changeset.hxx +// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +// license : GNU GPL v3; see accompanying LICENSE file + +#ifndef ODB_TRAVERSAL_RELATIONAL_CHANGESET_HXX +#define ODB_TRAVERSAL_RELATIONAL_CHANGESET_HXX + +#include <odb/semantics/relational/changeset.hxx> +#include <odb/traversal/relational/elements.hxx> + +namespace traversal +{ + namespace relational + { + struct changeset: scope_template<semantics::relational::changeset> {}; + } +} + +#endif // ODB_TRAVERSAL_RELATIONAL_CHANGESET_HXX diff --git a/odb/traversal/relational/key.cxx b/odb/traversal/relational/key.cxx new file mode 100644 index 0000000..70d0b88 --- /dev/null +++ b/odb/traversal/relational/key.cxx @@ -0,0 +1,18 @@ +// file : odb/traversal/relational/key.cxx +// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +// license : GNU GPL v3; see accompanying LICENSE file + +#include <odb/traversal/relational/key.hxx> +#include <odb/traversal/relational/column.hxx> + +namespace traversal +{ + namespace relational + { + void contains:: + traverse (type& c) + { + dispatch (c.column ()); + } + } +} diff --git a/odb/traversal/relational/key.hxx b/odb/traversal/relational/key.hxx index 42fc75a..1e38b6e 100644 --- a/odb/traversal/relational/key.hxx +++ b/odb/traversal/relational/key.hxx @@ -12,6 +12,15 @@ namespace traversal { namespace relational { + struct contains: edge<semantics::relational::contains> + { + contains () {} + contains (node_dispatcher& n) {node_traverser (n);} + + virtual void + traverse (type&); + }; + template <typename T> struct key_template: node<T> { diff --git a/odb/traversal/relational/table.hxx b/odb/traversal/relational/table.hxx index 2f8438a..b438f16 100644 --- a/odb/traversal/relational/table.hxx +++ b/odb/traversal/relational/table.hxx @@ -13,6 +13,7 @@ namespace traversal namespace relational { struct table: scope_template<semantics::relational::table> {}; + struct add_table: scope_template<semantics::relational::add_table> {}; } } |