aboutsummaryrefslogtreecommitdiff
path: root/common/wrapper/driver.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-26 12:13:19 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-28 14:15:45 +0200
commit0e4095ffecdc1f65a48d21730b0c8a0d96bc0c93 (patch)
treee6497bdbd52b112e44f41c2f8d5a83815e1cf4c8 /common/wrapper/driver.cxx
parent70ed1235b68bf7a36cfefabf0aa078608c83dfd1 (diff)
Add wrapper support for composite values
NULL semantics for composite values is not yet supported.
Diffstat (limited to 'common/wrapper/driver.cxx')
-rw-r--r--common/wrapper/driver.cxx39
1 files changed, 38 insertions, 1 deletions
diff --git a/common/wrapper/driver.cxx b/common/wrapper/driver.cxx
index ed4d83f..32ac412 100644
--- a/common/wrapper/driver.cxx
+++ b/common/wrapper/driver.cxx
@@ -29,11 +29,15 @@ main (int argc, char* argv[])
auto_ptr<database> db (create_database (argc, argv));
//
+ // Simple values.
+ //
+
+ //
//
unsigned long id;
{
object o;
- o.num.reset (new unsigned long (123));
+ o.num.reset (new int (123));
o.nstrs.push_back (nullable_string ());
o.nstrs.push_back (nullable_string ("123"));
#ifdef HAVE_TR1_MEMORY
@@ -64,6 +68,39 @@ main (int argc, char* argv[])
assert (*o->tr1_strs[1] == "123");
#endif
}
+
+ //
+ // Composite values.
+ //
+ {
+ comp_object co;
+
+ co.c1.reset (new comp1 ("123", 123));
+ co.vc1.push_back (comp1 ("1", 1));
+ co.vc1.push_back (comp1 ("2", 2));
+ co.vc1.push_back (comp1 ("3", 3));
+
+ co.c2.reset (new comp2 ("123", 123));
+ co.c2->strs.push_back ("1");
+ co.c2->strs.push_back ("2");
+ co.c2->strs.push_back ("3");
+
+ {
+ transaction t (db->begin ());
+ id = db->persist (co);
+ t.commit ();
+ }
+
+ {
+ transaction t (db->begin ());
+ auto_ptr<comp_object> o (db->load<comp_object> (id));
+ t.commit ();
+
+ assert (*o->c1 == *co.c1);
+ assert (o->vc1 == co.vc1);
+ assert (*o->c2 == *co.c2);
+ }
+ }
}
catch (const odb::exception& e)
{