diff options
Diffstat (limited to 'schema/employee.hxx')
-rw-r--r-- | schema/employee.hxx | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/schema/employee.hxx b/schema/employee.hxx deleted file mode 100644 index 25f8d8f..0000000 --- a/schema/employee.hxx +++ /dev/null @@ -1,150 +0,0 @@ -// file : schema/employee.hxx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : not copyrighted - public domain - -#ifndef EMPLOYEE_HXX -#define EMPLOYEE_HXX - -#include <vector> -#include <string> - -#include <odb/core.hxx> - -// Include TR1 <memory> header in a compiler-specific fashion. Fall back -// on the Boost implementation if the compiler does not support TR1. -// -#include <odb/tr1/memory.hxx> - -using std::tr1::shared_ptr; - -typedef std::vector<std::string> degrees; - -#pragma db value -class name -{ -public: - name (const std::string& first, const std::string& last) - : first_ (first), last_ (last) - { - } - - const std::string& - first () const - { - return first_; - } - - const std::string& - last () const - { - return last_; - } - -private: - friend class odb::access; - - #pragma db type("VARCHAR(255) NOT NULL") column("first_name") - std::string first_; - - #pragma db type("VARCHAR(255) NOT NULL") column("last_name") - std::string last_; -}; - -#pragma db object table("Employer") -class employer -{ -public: - employer (const std::string& name) - : name_ (name) - { - } - - const std::string& - name () const - { - return name_; - } - -private: - friend class odb::access; - - employer () {} - - #pragma db id type("VARCHAR(255) NOT NULL") column("name") - std::string name_; -}; - -#pragma db object table("Employee") -class employee -{ -public: - typedef ::employer employer_type; - - employee (unsigned long id, - const std::string& first, - const std::string& last, - shared_ptr<employer_type> employer) - : id_ (id), name_ (first, last), employer_ (employer) - { - } - - // Name. - // - typedef ::name name_type; - - const name_type& - name () const - { - return name_; - } - - // Degrees. - // - typedef ::degrees degrees_type; - - const degrees_type& - degrees () const - { - return degrees_; - } - - degrees_type& - degrees () - { - return degrees_; - } - - // Employer. - // - shared_ptr<employer_type> - employer () const - { - return employer_; - } - - void - employer (shared_ptr<employer_type> employer) - { - employer_ = employer; - } - -private: - friend class odb::access; - - employee (): name_ ("", "") {} - - #pragma db id type("INTEGER UNSIGNED NOT NULL") column("ssn") - unsigned long id_; - - #pragma db column("") // No column prefix. - name_type name_; - - #pragma db unordered table("EmployeeDegree") id_column("ssn") \ - value_type("VARCHAR(255) NOT NULL") value_column("degree") - degrees_type degrees_; - - #pragma db not_null column("employer") - shared_ptr<employer_type> employer_; -}; - -#endif // EMPLOYEE_HXX |