summaryrefslogtreecommitdiff
path: root/odb/relational/common.txx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-01-22 15:58:08 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-01-24 17:02:47 +0300
commit823026b58211a4166de06ac243d978dcb9930271 (patch)
tree97b43039cb769f8bee410e8536f9f945f2825153 /odb/relational/common.txx
parentb56b9c6796d8853758f0f5967488260d61b788e2 (diff)
Turn odb repository into muti-package repository
Also remove the autoconf/make-based build system.
Diffstat (limited to 'odb/relational/common.txx')
-rw-r--r--odb/relational/common.txx125
1 files changed, 0 insertions, 125 deletions
diff --git a/odb/relational/common.txx b/odb/relational/common.txx
deleted file mode 100644
index 82a4a4a..0000000
--- a/odb/relational/common.txx
+++ /dev/null
@@ -1,125 +0,0 @@
-// file : odb/relational/common.txx
-// license : GNU GPL v3; see accompanying LICENSE file
-
-namespace relational
-{
- //
- // member_base_impl
- //
-
- template <typename T>
- void member_base_impl<T>::
- traverse (semantics::data_member& m)
- {
- if (transient (m))
- return;
-
- string var;
-
- if (!var_override_.empty ())
- var = var_override_;
- else
- {
- string const& name (m.name ());
- var = name + (name[name.size () - 1] == '_' ? "" : "_");
- }
-
- bool cq (type_override_ != 0 ? false : const_member (m));
- const custom_cxx_type* ct (type_override_ != 0 ? custom_override_ : 0);
- semantics::type& t (type_override_ != 0
- ? *type_override_
- : utype (m, &ct));
-
- semantics::type* cont;
- if (semantics::class_* c = object_pointer (t))
- {
- // A pointer in view might point to an object without id.
- //
- data_member_path* id (id_member (*c));
- semantics::type& t (id != 0 ? utype (*id, &ct) : utype (m, &ct));
- semantics::class_* comp (id != 0 ? composite_wrapper (t) : 0);
-
- member_info mi (m,
- (comp != 0 ? *comp : t),
- ct,
- (comp != 0 && wrapper (t) ? &t : 0),
- cq,
- var,
- fq_type_override_); // Pointer type.
-
- mi.ptr = c;
-
- // Pointer in views aren't really a "column".
- //
- if (!view_member (m) && comp == 0)
- mi.st = &member_sql_type (m);
-
- if (pre (mi))
- {
- traverse_pointer (mi);
- post (mi);
- }
- }
- else if (semantics::class_* c = composite_wrapper (t))
- {
- // If t is a wrapper, pass the wrapped type. Also pass the
- // original, wrapper type.
- //
- member_info mi (m,
- *c,
- ct,
- (wrapper (t) ? &t : 0),
- cq,
- var,
- fq_type_override_);
- if (pre (mi))
- {
- traverse_composite (mi);
- post (mi);
- }
- }
- // This cannot be a container if we have a type override.
- //
- else if (type_override_ == 0 && (cont = context::container (m)))
- {
- // The same unwrapping logic as for composite values.
- //
- member_info mi (m,
- *cont,
- 0, // Cannot be mapped.
- (wrapper (t) ? &t : 0),
- cq,
- var,
- fq_type_override_);
- if (pre (mi))
- {
- traverse_container (mi);
- post (mi);
- }
- }
- else
- {
- member_info mi (m, t, ct, 0, cq, var, fq_type_override_);
- mi.st = &member_sql_type (m);
-
- if (pre (mi))
- {
- traverse_simple (mi);
- post (mi);
- }
- }
- }
-
- template <typename T>
- void member_base_impl<T>::
- traverse_pointer (member_info& mi)
- {
- if (!view_member (mi.m)) // Not really "as if" pointed-to id member.
- {
- if (composite (mi.t)) // Already unwrapped.
- traverse_composite (mi);
- else
- traverse_simple (mi);
- }
- }
-}