aboutsummaryrefslogtreecommitdiff
path: root/schema/employee.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'schema/employee.hxx')
-rw-r--r--schema/employee.hxx150
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