text: // file      : pimpl/person.hxx
  // copyright : not copyrighted - public domain
  
  #ifndef PERSON_HXX
  #define PERSON_HXX
  
  #include <string>
  
  #include <odb/core.hxx>
  
  #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
  