aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-31 14:00:18 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-31 14:00:18 +0200
commit130d691d607f2ff78865cc84b6fe46a7e79daa9a (patch)
tree4c164746d2f52a462e98f4cf98d1863bf781ebc0
parent1f7f9295bf4baf2b86ef5884b1c9929d0b31f758 (diff)
Cosmetic changes and cleanups
Rename some functions to have consistent names. Add object() predicate.
-rw-r--r--odb/common.cxx74
-rw-r--r--odb/common.hxx50
-rw-r--r--odb/context.cxx10
-rw-r--r--odb/context.hxx11
-rw-r--r--odb/include.cxx2
-rw-r--r--odb/inline.cxx2
-rw-r--r--odb/relational/common.cxx14
-rw-r--r--odb/relational/common.hxx6
-rw-r--r--odb/relational/header.hxx25
-rw-r--r--odb/relational/inline.hxx8
-rw-r--r--odb/relational/mysql/context.cxx2
-rw-r--r--odb/relational/pgsql/context.cxx2
-rw-r--r--odb/relational/pgsql/header.cxx2
-rw-r--r--odb/relational/pgsql/schema.cxx12
-rw-r--r--odb/relational/pgsql/source.cxx16
-rw-r--r--odb/relational/schema.hxx24
-rw-r--r--odb/relational/source.hxx65
-rw-r--r--odb/relational/sqlite/context.cxx2
-rw-r--r--odb/relational/type-processor.cxx4
-rw-r--r--odb/tracer/header.cxx2
-rw-r--r--odb/tracer/inline.cxx2
-rw-r--r--odb/tracer/source.cxx2
-rw-r--r--odb/validator.cxx12
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<std::streambuf*> 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<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;
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?
//