From 130d691d607f2ff78865cc84b6fe46a7e79daa9a Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 31 Aug 2011 14:00:18 +0200 Subject: Cosmetic changes and cleanups Rename some functions to have consistent names. Add object() predicate. --- odb/common.cxx | 74 +++++++++++++++++++-------------------- odb/common.hxx | 50 ++++++++++++++------------ odb/context.cxx | 10 +++--- odb/context.hxx | 11 ++++-- odb/include.cxx | 2 +- odb/inline.cxx | 2 +- odb/relational/common.cxx | 14 ++++---- odb/relational/common.hxx | 6 ++-- odb/relational/header.hxx | 25 ++++++------- odb/relational/inline.hxx | 8 ++--- odb/relational/mysql/context.cxx | 2 +- odb/relational/pgsql/context.cxx | 2 +- odb/relational/pgsql/header.cxx | 2 +- odb/relational/pgsql/schema.cxx | 12 +++---- odb/relational/pgsql/source.cxx | 16 +++++---- odb/relational/schema.hxx | 24 +++++++------ odb/relational/source.hxx | 65 ++++++++++++++++++---------------- odb/relational/sqlite/context.cxx | 2 +- odb/relational/type-processor.cxx | 4 +-- odb/tracer/header.cxx | 2 +- odb/tracer/inline.cxx | 2 +- odb/tracer/source.cxx | 2 +- odb/validator.cxx | 12 +++---- 23 files changed, 185 insertions(+), 164 deletions(-) diff --git a/odb/common.cxx b/odb/common.cxx index 18d1580..5082d2b 100644 --- a/odb/common.cxx +++ b/odb/common.cxx @@ -12,47 +12,47 @@ using namespace std; // void object_members_base:: -simple (semantics::data_member&) +traverse_simple (semantics::data_member&) { } void object_members_base:: -container (semantics::data_member&, semantics::type&) +traverse_composite (semantics::data_member*, semantics::class_& c) { + inherits (c); + names (c); } void object_members_base:: -composite (semantics::data_member*, semantics::class_& c) +traverse_composite_wrapper (semantics::data_member* m, + semantics::class_& c, + semantics::type*) { - inherits (c); - names (c); + traverse_composite (m, c); } void object_members_base:: -composite_wrapper (semantics::data_member* m, - semantics::class_& c, - semantics::type*) +traverse_container (semantics::data_member&, semantics::type&) { - composite (m, c); } void object_members_base:: -object (semantics::class_& c) +traverse_object (semantics::class_& c) { inherits (c); names (c); } void object_members_base:: -traverse_composite (semantics::data_member& m, semantics::class_& c) +traverse (semantics::data_member& m, semantics::class_& c) { - composite_wrapper (&m, c, 0); + traverse_composite_wrapper (&m, c, 0); } void object_members_base:: traverse (semantics::class_& c) { - bool obj (c.count ("object")); + bool obj (object (c)); // Ignore transient bases. // @@ -62,8 +62,8 @@ traverse (semantics::class_& c) semantics::class_* prev; if (obj) { - prev = context::object; - context::object = &c; + prev = context::cur_object; + context::cur_object = &c; if (context::top_object == 0) context::top_object = &c; @@ -83,7 +83,7 @@ traverse (semantics::class_& c) tb = true; } - object (c); + traverse_object (c); if (tb) { @@ -94,9 +94,9 @@ traverse (semantics::class_& c) else { if (obj) - object (c); + traverse_object (c); else - composite_wrapper (0, c, 0); + traverse_composite_wrapper (0, c, 0); } if (obj) @@ -104,7 +104,7 @@ traverse (semantics::class_& c) if (prev == 0) context::top_object = 0; - context::object = prev; + context::cur_object = prev; } } @@ -161,7 +161,7 @@ traverse (semantics::data_member& m) om_.table_prefix_.level++; } - om_.composite_wrapper (&m, *comp, (wrapper (t) ? &t : 0)); + om_.traverse_composite_wrapper (&m, *comp, (wrapper (t) ? &t : 0)); if (om_.build_table_prefix_) { @@ -174,11 +174,11 @@ traverse (semantics::data_member& m) } else if (semantics::type* c = context::container_wrapper (t)) { - om_.container (m, *c); + om_.traverse_container (m, *c); } else { - om_.simple (m); + om_.traverse_simple (m); } } @@ -192,24 +192,24 @@ flush () } void object_columns_base:: -composite (semantics::data_member*, semantics::class_& c) +traverse_composite (semantics::data_member*, semantics::class_& c) { inherits (c); names (c); } void object_columns_base:: -object (semantics::class_& c) +traverse_object (semantics::class_& c) { inherits (c); names (c); } void object_columns_base:: -traverse_composite (semantics::data_member& m, - semantics::class_& c, - string const& key_prefix, - string const& default_name) +traverse (semantics::data_member& m, + semantics::class_& c, + string const& key_prefix, + string const& default_name) { bool custom (m.count (key_prefix + "-column")); string name (member_.column_name (m, key_prefix, default_name)); @@ -227,7 +227,7 @@ traverse_composite (semantics::data_member& m, member_.prefix_ += '_'; } - composite (&m, c); + traverse_composite (&m, c); if (!member_.first_) flush (); @@ -236,7 +236,7 @@ traverse_composite (semantics::data_member& m, void object_columns_base:: traverse (semantics::class_& c) { - bool obj (c.count ("object")); + bool obj (object (c)); // Ignore transient bases. // @@ -251,24 +251,24 @@ traverse (semantics::class_& c) semantics::class_* prev; if (obj) { - prev = context::object; - context::object = &c; + prev = context::cur_object; + context::cur_object = &c; if (context::top_object == 0) context::top_object = &c; } if (obj) - object (c); + traverse_object (c); else - composite (0, c); + traverse_composite (0, c); if (obj) { if (prev == 0) context::top_object = 0; - context::object = prev; + context::cur_object = prev; } if (f && !member_.first_) @@ -303,7 +303,7 @@ traverse (semantics::data_member& m) prefix_ += '_'; } - oc_.composite (&m, *comp); + oc_.traverse_composite (&m, *comp); prefix_ = old_prefix; } @@ -314,7 +314,7 @@ traverse (semantics::data_member& m) } else { - if (oc_.column (m, prefix_ + column_name (m), first_)) + if (oc_.traverse_column (m, prefix_ + column_name (m), first_)) { if (first_) first_ = false; diff --git a/odb/common.hxx b/odb/common.hxx index e3b4285..9e48771 100644 --- a/odb/common.hxx +++ b/odb/common.hxx @@ -16,13 +16,7 @@ struct object_members_base: traversal::class_, virtual context { virtual void - simple (semantics::data_member&); - - // The second argument is the actual container type in case m.type () - // is a wrapper. - // - virtual void - container (semantics::data_member&, semantics::type&); + traverse_simple (semantics::data_member&); // If you override this function, you can call the base to traverse // bases and members. The first argument is the data member and can @@ -31,24 +25,30 @@ struct object_members_base: traversal::class_, virtual context // the same as m.type (). // virtual void - composite (semantics::data_member*, semantics::class_&); + traverse_composite (semantics::data_member*, semantics::class_&); // More general version of the above function that allows detection // of wrapped composite value. By default this function calls - // composite (m, comp) ignoring the wrapper type. Note that this - // function is called for all composite value (wrapped or not). + // traverse_composite (m, comp) ignoring the wrapper type. Note that + // this function is called for all composite value (wrapped or not). // If it is not wrapped, the wrapper argument will be NULL. // virtual void - composite_wrapper (semantics::data_member*, - semantics::class_& comp, - semantics::type* wrapper); + traverse_composite_wrapper (semantics::data_member*, + semantics::class_& comp, + semantics::type* wrapper); + + // The second argument is the actual container type in case m.type () + // is a wrapper. + // + virtual void + traverse_container (semantics::data_member&, semantics::type&); // If you override this function, you can call the base to traverse // bases and members. // virtual void - object (semantics::class_&); + traverse_object (semantics::class_&); public: object_members_base () @@ -73,8 +73,10 @@ public: virtual void traverse (semantics::class_&); + // Composite value with data member. + // virtual void - traverse_composite (semantics::data_member&, semantics::class_&); + traverse (semantics::data_member&, semantics::class_& comp); protected: std::string prefix_; @@ -123,7 +125,9 @@ struct object_columns_base: traversal::class_, virtual context // first flag should not be changed. // virtual bool - column (semantics::data_member&, std::string const& name, bool first) = 0; + traverse_column (semantics::data_member&, + std::string const& name, + bool first) = 0; // If you override this function, you can call the base to traverse // bases and members. The first argument is the data member and can @@ -132,13 +136,13 @@ struct object_columns_base: traversal::class_, virtual context // the same as m.type (). // virtual void - composite (semantics::data_member*, semantics::class_&); + traverse_composite (semantics::data_member*, semantics::class_&); // If you override this function, you can call the base to traverse // bases and members. // virtual void - object (semantics::class_&); + traverse_object (semantics::class_&); // Called after the last column, provided at least one column hasn't // been ignored. @@ -164,11 +168,13 @@ public: virtual void traverse (semantics::class_&); + // Composite value with data member. + // virtual void - traverse_composite (semantics::data_member&, - semantics::class_&, - std::string const& key_prefix, - std::string const& default_name); + traverse (semantics::data_member&, + semantics::class_& comp, + std::string const& key_prefix, + std::string const& default_name); private: void init () diff --git a/odb/context.cxx b/odb/context.cxx index fc82f29..a5f3d01 100644 --- a/odb/context.cxx +++ b/odb/context.cxx @@ -115,7 +115,7 @@ context (ostream& os_, embedded_schema (ops.generate_schema () && ops.schema_format ().count (schema_format::embedded)), top_object (data_->top_object_), - object (data_->object_) + cur_object (data_->cur_object_) { assert (current_ == 0); current_ = this; @@ -139,7 +139,7 @@ context () include_regex (current ().include_regex), embedded_schema (current ().embedded_schema), top_object (current ().top_object), - object (current ().object) + cur_object (current ().cur_object) { } @@ -887,7 +887,7 @@ namespace } virtual void - simple (semantics::data_member& m) + traverse_simple (semantics::data_member& m) { if (out_ || !context::inverse (m)) count_++; @@ -939,13 +939,13 @@ namespace } virtual void - simple (semantics::data_member& m) + traverse_simple (semantics::data_member& m) { r_ = r_ || context::is_a (m, flags_); } virtual void - container (semantics::data_member& m, semantics::type& c) + traverse_container (semantics::data_member& m, semantics::type& c) { // We don't cross the container boundaries (separate table). // diff --git a/odb/context.hxx b/odb/context.hxx index 6449daf..f5c58aa 100644 --- a/odb/context.hxx +++ b/odb/context.hxx @@ -77,6 +77,11 @@ public: // Predicates. // public: + static bool + object (semantics::type& t) + { + return t.count ("object"); + } // Check whether the type is a wrapper. Return the wrapped type if // it is a wrapper and NULL otherwise. @@ -437,7 +442,7 @@ protected: virtual ~data () {} data (std::ostream& os) - : os_ (os.rdbuf ()), top_object_ (0), object_ (0) + : os_ (os.rdbuf ()), top_object_ (0), cur_object_ (0) { } @@ -446,7 +451,7 @@ protected: std::stack os_stack_; semantics::class_* top_object_; - semantics::class_* object_; + semantics::class_* cur_object_; keyword_set_type keyword_set_; type_map_type type_map_; @@ -476,7 +481,7 @@ public: // Object currently being traversed. It can be the same as top_object // or it can a base of top_object. // - semantics::class_*& object; + semantics::class_*& cur_object; // Per-database customizable functionality. // diff --git a/odb/include.cxx b/odb/include.cxx index 8d70b64..a01e754 100644 --- a/odb/include.cxx +++ b/odb/include.cxx @@ -81,7 +81,7 @@ namespace // We only generate things for objects and composite value types. // - if (!(c.count ("object") || comp_value (c))) + if (!(object (c) || comp_value (c))) return; // This is a persistent object or composite value type declared in diff --git a/odb/inline.cxx b/odb/inline.cxx index d62a34f..79bee79 100644 --- a/odb/inline.cxx +++ b/odb/inline.cxx @@ -13,7 +13,7 @@ namespace { struct data_member: traversal::data_member, context { - data_member (semantics::class_& cl) //@@ context::object + data_member (semantics::class_& cl) //@@ context::{cur,top}_object { scope_ = "access::value_traits< " + cl.fq_name () + " >"; } 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 (m.scope ())); abst = abstract (c_); } else @@ -342,7 +343,7 @@ namespace relational { semantics::class_& b (dynamic_cast (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 st; - st->column (*id_m, "", true); + st->traverse_column (*id_m, "", true); os << "};"; } @@ -947,7 +949,7 @@ namespace relational instance st; st->traverse (t); - st->column (*id_m, "", false); + st->traverse_column (*id_m, "", false); os << "};"; } @@ -960,7 +962,7 @@ namespace relational << "{"; instance 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 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 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 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 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 oc; - oc->traverse_composite (m, *ckt, "key", "key"); + oc->traverse (m, *ckt, "key", "key"); } else { instance 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 oc; - oc->traverse_composite (m, *cvt, "value", "value"); + oc->traverse (m, *cvt, "value", "value"); } else { instance 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 (m.scope ())); abst = abstract (c_); } else @@ -773,7 +778,7 @@ namespace relational instance 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 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 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 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 (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; diff --git a/odb/tracer/header.cxx b/odb/tracer/header.cxx index ac89ec7..4812487 100644 --- a/odb/tracer/header.cxx +++ b/odb/tracer/header.cxx @@ -21,7 +21,7 @@ namespace tracer if (c.file () != unit.file ()) return; - if (!c.count ("object")) + if (!object (c)) return; string const& type (c.fq_name ()); diff --git a/odb/tracer/inline.cxx b/odb/tracer/inline.cxx index e8feec8..de4282a 100644 --- a/odb/tracer/inline.cxx +++ b/odb/tracer/inline.cxx @@ -21,7 +21,7 @@ namespace tracer if (c.file () != unit.file ()) return; - if (!c.count ("object")) + if (!object (c)) return; string const& type (c.fq_name ()); diff --git a/odb/tracer/source.cxx b/odb/tracer/source.cxx index c25c1ee..8412714 100644 --- a/odb/tracer/source.cxx +++ b/odb/tracer/source.cxx @@ -21,7 +21,7 @@ namespace tracer if (c.file () != unit.file ()) return; - if (!c.count ("object")) + if (!object (c)) return; string const& type (c.fq_name ()); diff --git a/odb/validator.cxx b/odb/validator.cxx index 790a991..a3b0348 100644 --- a/odb/validator.cxx +++ b/odb/validator.cxx @@ -94,7 +94,7 @@ namespace // if (object_) { - if (!c.count ("object")) + if (!context::object (c)) return; } else @@ -176,12 +176,12 @@ namespace virtual void traverse (type& c) { - if (c.count ("object")) + if (context::object (c)) traverse_object (c); else { if (context::comp_value (c)) - traverse_value (c); + traverse_composite (c); vt_.dispatch (c); } @@ -239,7 +239,7 @@ namespace { type& b (i->base ()); - if (b.count ("object")) + if (context::object (b)) base = true; if (context::comp_value (b)) { @@ -328,7 +328,7 @@ namespace } virtual void - traverse_value (type& c) + traverse_composite (type& c) { bool base (false); @@ -340,7 +340,7 @@ namespace if (context::comp_value (b)) base = true; - else if (b.count ("object")) + else if (context::object (b)) { // @@ Should we use hint here? // -- cgit v1.1