From c97a759dcc080705c956c87fce076709ca66a0c8 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 1 Sep 2012 11:16:00 +0200 Subject: Add 'access' and 'pimpl' examples These illustrate the use of accessor/modifier functions and expressions as well as virtual data members. --- pimpl/person.hxx | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 pimpl/person.hxx (limited to 'pimpl/person.hxx') diff --git a/pimpl/person.hxx b/pimpl/person.hxx new file mode 100644 index 0000000..d296c28 --- /dev/null +++ b/pimpl/person.hxx @@ -0,0 +1,56 @@ +// file : pimpl/person.hxx +// copyright : not copyrighted - public domain + +#ifndef PERSON_HXX +#define PERSON_HXX + +#include + +#include + +#pragma db object +class person +{ +public: + ~person (); + person (const std::string& email, + const std::string& name, + unsigned short age); + + const std::string& + email () const; + + void + email (const std::string&); + + const std::string& + name () const; + + void + name (const std::string&); + + unsigned short + age () const; + + void + age (unsigned short) const; + +private: + person (const person&); + person& operator= (const person&); + +private: + friend class odb::access; + person (); + + struct impl; + + #pragma db transient + impl* pimpl_; + + #pragma db member(email) virtual(std::string) id + #pragma db member(name) virtual(std::string) + #pragma db member(age) virtual(unsigned short) +}; + +#endif // PERSON_HXX -- cgit v1.1