diff options
Diffstat (limited to 'odb/relational')
-rw-r--r-- | odb/relational/common.cxx | 14 | ||||
-rw-r--r-- | odb/relational/common.hxx | 6 | ||||
-rw-r--r-- | odb/relational/header.hxx | 25 | ||||
-rw-r--r-- | odb/relational/inline.hxx | 8 | ||||
-rw-r--r-- | odb/relational/mysql/context.cxx | 2 | ||||
-rw-r--r-- | odb/relational/pgsql/context.cxx | 2 | ||||
-rw-r--r-- | odb/relational/pgsql/header.cxx | 2 | ||||
-rw-r--r-- | odb/relational/pgsql/schema.cxx | 12 | ||||
-rw-r--r-- | odb/relational/pgsql/source.cxx | 16 | ||||
-rw-r--r-- | odb/relational/schema.hxx | 24 | ||||
-rw-r--r-- | odb/relational/source.hxx | 65 | ||||
-rw-r--r-- | odb/relational/sqlite/context.cxx | 2 | ||||
-rw-r--r-- | odb/relational/type-processor.cxx | 4 |
13 files changed, 96 insertions, 86 deletions
diff --git a/odb/relational/common.cxx b/odb/relational/common.cxx index 2a4a461..ae2e1f4 100644 --- a/odb/relational/common.cxx +++ b/odb/relational/common.cxx @@ -25,7 +25,7 @@ namespace relational } query_columns:: - query_columns (semantics::class_& c) //@@ context::object + query_columns (semantics::class_& c) //@@ context::{cur,top}_object : ptr_ (true), decl_ (false) { scope_ = "access::object_traits< " + c.fq_name () + " >::query_columns"; @@ -33,7 +33,7 @@ namespace relational } void query_columns:: - object (semantics::class_& c) + traverse_object (semantics::class_& c) { // We only want members for objects unless we are traversing a // pointer, in which case we need the whole thing. @@ -45,13 +45,13 @@ namespace relational } void query_columns:: - composite (semantics::data_member* m, semantics::class_& c) + traverse_composite (semantics::data_member* m, semantics::class_& c) { // Base type. // if (m == 0) { - object_columns_base::composite (m, c); + object_columns_base::traverse_composite (m, c); return; } @@ -64,7 +64,7 @@ namespace relational << "struct " << name << "{"; - object_columns_base::composite (m, c); + object_columns_base::traverse_composite (m, c); os << "};"; } @@ -73,14 +73,14 @@ namespace relational string old_scope (scope_); scope_ += "::" + name; - object_columns_base::composite (m, c); + object_columns_base::traverse_composite (m, c); scope_ = old_scope; } } bool query_columns:: - column (semantics::data_member& m, string const& col_name, bool) + traverse_column (semantics::data_member& m, string const& col_name, bool) { string name (public_name (m)); diff --git a/odb/relational/common.hxx b/odb/relational/common.hxx index 1413e3f..8fc88e3 100644 --- a/odb/relational/common.hxx +++ b/odb/relational/common.hxx @@ -68,13 +68,13 @@ namespace relational } virtual void - object (semantics::class_&); + traverse_object (semantics::class_&); virtual void - composite (semantics::data_member*, semantics::class_&); + traverse_composite (semantics::data_member*, semantics::class_&); virtual bool - column (semantics::data_member&, string const&, bool); + traverse_column (semantics::data_member&, string const&, bool); protected: bool ptr_; diff --git a/odb/relational/header.hxx b/odb/relational/header.hxx index 900fb45..5c0a00c 100644 --- a/odb/relational/header.hxx +++ b/odb/relational/header.hxx @@ -44,7 +44,7 @@ namespace relational virtual void traverse (type& c) { - bool obj (c.count ("object")); + bool obj (object (c)); // Ignore transient bases. // @@ -128,7 +128,7 @@ namespace relational { // Ignore transient bases. // - if (!c.count ("object")) + if (!object (c)) return; if (first_) @@ -187,10 +187,10 @@ namespace relational } virtual void - composite (semantics::data_member* m, semantics::class_& c) + traverse_composite (semantics::data_member* m, semantics::class_& c) { - if (c_.count ("object")) - object_members_base::composite (m, c); + if (object (c_)) + object_members_base::traverse_composite (m, c); else { // If we are generating traits for a composite value type, then @@ -212,7 +212,7 @@ namespace relational } virtual void - container (semantics::data_member& m, semantics::type& c) + traverse_container (semantics::data_member& m, semantics::type& c) { using semantics::type; using semantics::class_; @@ -222,9 +222,10 @@ namespace relational // bool base, abst; - if (c_.count ("object")) + if (object (c_)) { - base = context::object != &c_ || !m.scope ().count ("object"); + base = cur_object != &c_ || + !object (dynamic_cast<type&> (m.scope ())); abst = abstract (c_); } else @@ -342,7 +343,7 @@ namespace relational { semantics::class_& b (dynamic_cast<semantics::class_&> (m.scope ())); - if (b.count ("object")) + if (object (b)) os << ": access::object_traits< " << b.fq_name () << " >::" << name; else @@ -751,10 +752,10 @@ namespace relational if (c.file () != unit.file ()) return; - if (c.count ("object")) + if (object (c)) traverse_object (c); else if (comp_value (c)) - traverse_value (c); + traverse_composite (c); } virtual void @@ -1072,7 +1073,7 @@ namespace relational } virtual void - traverse_value (type& c) + traverse_composite (type& c) { string const& type (c.fq_name ()); diff --git a/odb/relational/inline.hxx b/odb/relational/inline.hxx index 89fc720..9e0627a 100644 --- a/odb/relational/inline.hxx +++ b/odb/relational/inline.hxx @@ -43,7 +43,7 @@ namespace relational { // Ignore transient bases. // - if (!c.count ("object")) + if (!object (c)) return; if (c.count ("callback")) @@ -84,10 +84,10 @@ namespace relational if (c.file () != unit.file ()) return; - if (c.count ("object")) + if (object (c)) traverse_object (c); else if (comp_value (c)) - traverse_value (c); + traverse_composite (c); } virtual void @@ -239,7 +239,7 @@ namespace relational } virtual void - traverse_value (type&) + traverse_composite (type&) { /* string const& type (c.fq_name ()); diff --git a/odb/relational/mysql/context.cxx b/odb/relational/mysql/context.cxx index 84f2bf6..8843fe0 100644 --- a/odb/relational/mysql/context.cxx +++ b/odb/relational/mysql/context.cxx @@ -124,7 +124,7 @@ namespace relational { // Ignore transient bases. // - if (!(c.count ("object") || context::comp_value (c))) + if (!(context::object (c) || context::comp_value (c))) return; if (c.count ("mysql-grow")) diff --git a/odb/relational/pgsql/context.cxx b/odb/relational/pgsql/context.cxx index 6c6c5a0..20dc460 100644 --- a/odb/relational/pgsql/context.cxx +++ b/odb/relational/pgsql/context.cxx @@ -113,7 +113,7 @@ namespace relational { // Ignore transient bases. // - if (!(c.count ("object") || context::comp_value (c))) + if (!(context::object (c) || context::comp_value (c))) return; if (c.count ("pgsql-grow")) diff --git a/odb/relational/pgsql/header.cxx b/odb/relational/pgsql/header.cxx index edf9355..1622aff 100644 --- a/odb/relational/pgsql/header.cxx +++ b/odb/relational/pgsql/header.cxx @@ -60,7 +60,7 @@ namespace relational virtual void container_public_extra_pre (semantics::data_member&) { - if (!c_.count ("object") || abstract (c_)) + if (!object (c_) || abstract (c_)) return; // Container statement names. diff --git a/odb/relational/pgsql/schema.cxx b/odb/relational/pgsql/schema.cxx index 0e66e79..761206e 100644 --- a/odb/relational/pgsql/schema.cxx +++ b/odb/relational/pgsql/schema.cxx @@ -134,7 +134,7 @@ namespace relational } virtual bool - column (semantics::data_member& m, string const& name, bool) + traverse_column (semantics::data_member& m, string const& name, bool) { if (inverse (m)) return false; @@ -186,7 +186,7 @@ namespace relational } virtual void - container (semantics::data_member& m, semantics::type& t) + traverse_container (semantics::data_member& m, semantics::type& t) { using semantics::type; using semantics::data_member; @@ -208,7 +208,7 @@ namespace relational { object_columns_references ocr (e_, os_, name, "id"); string id_name (column_name (m, "id", "object_id")); - ocr.column (m, id_name, true); + ocr.traverse_column (m, id_name, true); } // value @@ -216,13 +216,13 @@ namespace relational if (semantics::class_* cvt = comp_value_wrapper (vt)) { object_columns_references ocr (e_, os_, name); - ocr.traverse_composite (m, *cvt, "value", "value"); + ocr.traverse (m, *cvt, "value", "value"); } else { object_columns_references ocr (e_, os_, name, "value"); string const& value_name (column_name (m, "value", "value")); - ocr.column (m, value_name, true); + ocr.traverse_column (m, value_name, true); } tables_.insert (name); @@ -250,7 +250,7 @@ namespace relational if (c.file () != unit.file ()) return; - if (!c.count ("object") || abstract (c)) + if (!object (c) || abstract (c)) return; string const& name (table_name (c)); diff --git a/odb/relational/pgsql/source.cxx b/odb/relational/pgsql/source.cxx index 331463d..5050315 100644 --- a/odb/relational/pgsql/source.cxx +++ b/odb/relational/pgsql/source.cxx @@ -105,7 +105,9 @@ namespace relational struct statement_oids: object_columns_base, context { virtual bool - column (semantics::data_member& m, std::string const&, bool first) + traverse_column (semantics::data_member& m, + std::string const&, + bool first) { if (!first) os << ',' << endl; @@ -933,7 +935,7 @@ namespace relational << "{"; instance<statement_oids> st; - st->column (*id_m, "", true); + st->traverse_column (*id_m, "", true); os << "};"; } @@ -947,7 +949,7 @@ namespace relational instance<statement_oids> st; st->traverse (t); - st->column (*id_m, "", false); + st->traverse_column (*id_m, "", false); os << "};"; } @@ -960,7 +962,7 @@ namespace relational << "{"; instance<statement_oids> st; - st->column (*id_m, "", true); + st->traverse_column (*id_m, "", true); os << "};"; } @@ -1005,7 +1007,7 @@ namespace relational virtual void container_extra (semantics::data_member& m, semantics::type& t) { - if (!c_.count ("object") || abstract (c_)) + if (!object (c_) || abstract (c_)) return; string scope (scope_ + "::" + prefix_ + public_name (m) + "_traits"); @@ -1095,7 +1097,7 @@ namespace relational comp_value_wrapper (container_kt (t))) { instance<statement_oids> st; - st->traverse_composite (m, *ktc, "key", "key"); + st->traverse (m, *ktc, "key", "key"); os << ","; } else @@ -1113,7 +1115,7 @@ namespace relational if (semantics::class_* vtc = comp_value_wrapper (vt)) { instance <statement_oids> st; - st->traverse_composite (m, *vtc, "value", "value"); + st->traverse (m, *vtc, "value", "value"); } else os << oids[column_sql_type (m, "value").type]; diff --git a/odb/relational/schema.hxx b/odb/relational/schema.hxx index 5c985da..47af95e 100644 --- a/odb/relational/schema.hxx +++ b/odb/relational/schema.hxx @@ -83,7 +83,7 @@ namespace relational } virtual void - container (semantics::data_member& m, semantics::type& c) + traverse_container (semantics::data_member& m, semantics::type& c) { // Ignore inverse containers of object pointers. // @@ -167,7 +167,7 @@ namespace relational if (c.file () != unit.file ()) return; - if (!c.count ("object") || abstract (c)) + if (!object (c) || abstract (c)) return; string const& name (table_name (c)); @@ -208,7 +208,9 @@ namespace relational } virtual bool - column (semantics::data_member& m, string const& name, bool first) + traverse_column (semantics::data_member& m, + string const& name, + bool first) { // Ignore inverse object pointers. // @@ -372,7 +374,7 @@ namespace relational } virtual void - container (semantics::data_member& m, semantics::type& t) + traverse_container (semantics::data_member& m, semantics::type& t) { using semantics::type; using semantics::data_member; @@ -398,7 +400,7 @@ namespace relational string id_name (column_name (m, "id", "object_id")); { instance<object_columns> oc ("id"); - oc->column (m, id_name, true); + oc->traverse_column (m, id_name, true); } // index (simple value) @@ -411,7 +413,7 @@ namespace relational instance<object_columns> oc ("index"); index_name = column_name (m, "index", "index"); - oc->column (m, index_name, true); + oc->traverse_column (m, index_name, true); } // key (simple or composite value) @@ -425,13 +427,13 @@ namespace relational if (semantics::class_* ckt = comp_value_wrapper (kt)) { instance<object_columns> oc; - oc->traverse_composite (m, *ckt, "key", "key"); + oc->traverse (m, *ckt, "key", "key"); } else { instance<object_columns> oc ("key"); string const& name (column_name (m, "key", "key")); - oc->column (m, name, true); + oc->traverse_column (m, name, true); } } @@ -443,13 +445,13 @@ namespace relational if (semantics::class_* cvt = comp_value_wrapper (vt)) { instance<object_columns> oc; - oc->traverse_composite (m, *cvt, "value", "value"); + oc->traverse (m, *cvt, "value", "value"); } else { instance<object_columns> oc ("value"); string const& name (column_name (m, "value", "value")); - oc->column (m, name, true); + oc->traverse_column (m, name, true); } } @@ -520,7 +522,7 @@ namespace relational if (c.file () != unit.file ()) return; - if (!c.count ("object") || abstract (c)) + if (!object (c) || abstract (c)) return; string const& name (table_name (c)); diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx index c825159..a81ac3a 100644 --- a/odb/relational/source.hxx +++ b/odb/relational/source.hxx @@ -63,7 +63,9 @@ namespace relational } virtual bool - column (semantics::data_member& m, string const& name, bool first) + traverse_column (semantics::data_member& m, + string const& name, + bool first) { semantics::data_member* im (inverse (m)); @@ -160,7 +162,7 @@ namespace relational { typedef object_joins base; - //@@ context::object Might have to be create every time. + //@@ context::{cur,top}_object Might have to be created every time. // object_joins (semantics::class_& scope, bool query) : query_ (query), @@ -208,7 +210,9 @@ namespace relational } virtual bool - column (semantics::data_member& m, string const& col_name, bool) + traverse_column (semantics::data_member& m, + string const& col_name, + bool) { semantics::class_* c (object_pointer (m.type ())); @@ -398,7 +402,7 @@ namespace relational virtual void traverse (type& c) { - bool obj (c.count ("object")); + bool obj (object (c)); // Ignore transient bases. // @@ -455,7 +459,7 @@ namespace relational virtual void traverse (type& c) { - bool obj (c.count ("object")); + bool obj (object (c)); // Ignore transient bases. // @@ -513,7 +517,7 @@ namespace relational virtual void traverse (type& c) { - bool obj (c.count ("object")); + bool obj (object (c)); // Ignore transient bases. // @@ -564,7 +568,7 @@ namespace relational virtual void traverse (type& c) { - bool obj (c.count ("object")); + bool obj (object (c)); // Ignore transient bases. // @@ -588,7 +592,7 @@ namespace relational container_traits (semantics::class_& c) : object_members_base (true, true), c_ (c) { - if (c.count ("object")) + if (object (c)) scope_ = "access::object_traits< " + c.fq_name () + " >"; else scope_ = "access::composite_value_traits< " + c.fq_name () + " >"; @@ -604,10 +608,10 @@ namespace relational } virtual void - composite (semantics::data_member* m, semantics::class_& c) + traverse_composite (semantics::data_member* m, semantics::class_& c) { - if (c_.count ("object")) - object_members_base::composite (m, c); + if (object (c_)) + object_members_base::traverse_composite (m, c); else { // If we are generating traits for a composite value type, then @@ -624,7 +628,7 @@ namespace relational } virtual void - container (semantics::data_member& m, semantics::type& t) + traverse_container (semantics::data_member& m, semantics::type& t) { using semantics::type; @@ -633,9 +637,10 @@ namespace relational // bool base, abst; - if (c_.count ("object")) + if (object (c_)) { - base = context::object != &c_ || !m.scope ().count ("object"); + base = cur_object != &c_ || + !object (dynamic_cast<type&> (m.scope ())); abst = abstract (c_); } else @@ -773,7 +778,7 @@ namespace relational instance<object_columns> t (table, false, false); if (semantics::class_* ckt = comp_value_wrapper (*kt)) - t->traverse_composite (m, *ckt, "key", "key"); + t->traverse (m, *ckt, "key", "key"); else { string const& col (column_qname (m, "key", "key")); @@ -792,7 +797,7 @@ namespace relational instance<object_columns> t (table, false); if (semantics::class_* cvt = comp_value_wrapper (vt)) - t->traverse_composite (m, *cvt, "value", "value"); + t->traverse (m, *cvt, "value", "value"); else { string const& col (column_qname (m, "value", "value")); @@ -849,7 +854,7 @@ namespace relational instance<object_columns> t (false, false); if (semantics::class_* ckt = comp_value_wrapper (*kt)) - t->traverse_composite (m, *ckt, "key", "key"); + t->traverse (m, *ckt, "key", "key"); else { t->column (m, "key", "", column_qname (m, "key", "key")); @@ -867,7 +872,7 @@ namespace relational instance<object_columns> t (false); if (semantics::class_* cvt = comp_value_wrapper (vt)) - t->traverse_composite (m, *cvt, "value", "value"); + t->traverse (m, *cvt, "value", "value"); else { t->column (m, "value", "", column_qname (m, "value", "value")); @@ -1636,7 +1641,7 @@ namespace relational } virtual void - container (semantics::data_member& m, semantics::type&) + traverse_container (semantics::data_member& m, semantics::type&) { string traits (prefix_ + public_name (m) + "_traits"); os << db << "::container_statements_impl< " << traits << " > " << @@ -1654,7 +1659,7 @@ namespace relational } virtual void - container (semantics::data_member& m, semantics::type&) + traverse_container (semantics::data_member& m, semantics::type&) { if (first_) { @@ -1695,13 +1700,13 @@ namespace relational } virtual void - composite_wrapper (semantics::data_member* m, - semantics::class_& c, - semantics::type* w) + traverse_composite_wrapper (semantics::data_member* m, + semantics::class_& c, + semantics::type* w) { if (m == 0) { - object_members_base::composite (m, c); + object_members_base::traverse_composite (m, c); return; } @@ -1726,12 +1731,12 @@ namespace relational obj_prefix_ += '.'; - object_members_base::composite (m, c); + object_members_base::traverse_composite (m, c); obj_prefix_ = old; } virtual void - container (semantics::data_member& m, semantics::type&) + traverse_container (semantics::data_member& m, semantics::type&) { using semantics::type; @@ -1814,7 +1819,7 @@ namespace relational } virtual void - simple (semantics::data_member& m) + traverse_simple (semantics::data_member& m) { if (!inverse (m)) { @@ -1895,10 +1900,10 @@ namespace relational if (c.file () != unit.file ()) return; - if (c.count ("object")) + if (object (c)) traverse_object (c); else if (comp_value (c)) - traverse_value (c); + traverse_composite (c); } virtual void @@ -2807,7 +2812,7 @@ namespace relational } virtual void - traverse_value (type& c) + traverse_composite (type& c) { string const& type (c.fq_name ()); string traits ("access::composite_value_traits< " + type + " >"); diff --git a/odb/relational/sqlite/context.cxx b/odb/relational/sqlite/context.cxx index 4d00621..149cf0a 100644 --- a/odb/relational/sqlite/context.cxx +++ b/odb/relational/sqlite/context.cxx @@ -111,7 +111,7 @@ namespace relational { // Ignore transient bases. // - if (!(c.count ("object") || context::comp_value (c))) + if (!(context::object (c) || context::comp_value (c))) return; if (c.count ("sqlite-grow")) diff --git a/odb/relational/type-processor.cxx b/odb/relational/type-processor.cxx index e53126f..6a5d974 100644 --- a/odb/relational/type-processor.cxx +++ b/odb/relational/type-processor.cxx @@ -696,7 +696,7 @@ namespace relational c = dynamic_cast<class_*> (unit.find (tn)); - if (c == 0 || !c->count ("object")) + if (c == 0 || !object (*c)) return 0; t.set ("element-type", c); @@ -1087,7 +1087,7 @@ namespace relational virtual void traverse (type& c) { - bool obj (c.count ("object")); + bool obj (object (c)); if (!(obj || comp_value (c))) return; |