diff options
Diffstat (limited to 'examples/cxx/serializer/library/library-simpl-tiein.cxx')
-rw-r--r-- | examples/cxx/serializer/library/library-simpl-tiein.cxx | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/examples/cxx/serializer/library/library-simpl-tiein.cxx b/examples/cxx/serializer/library/library-simpl-tiein.cxx new file mode 100644 index 0000000..91a5c23 --- /dev/null +++ b/examples/cxx/serializer/library/library-simpl-tiein.cxx @@ -0,0 +1,208 @@ +// file : examples/cxx/serializer/library/library-simpl-tiein.cxx +// author : Boris Kolpackov <boris@codesynthesis.com> +// copyright : not copyrighted - public domain + +#include "library-simpl-tiein.hxx" + +namespace library +{ + using namespace xml_schema; + + // isbn_simpl + // + isbn_simpl:: + isbn_simpl () + : isbn_sskel (&base_impl_) + { + } + + void isbn_simpl:: + pre (isbn n) + { + base_impl_.pre (n); + } + + // title_simpl + // + title_simpl:: + title_simpl () + : title_sskel (&base_impl_) + { + } + + void title_simpl:: + pre (const title& t) + { + base_impl_.pre (t); + title_ = &t; + } + + bool title_simpl:: + lang_present () + { + return !title_->lang ().empty (); + } + + std::string title_simpl:: + lang () + { + return title_->lang (); + } + + // genre_simpl + // + genre_simpl:: + genre_simpl () + : genre_sskel (&base_impl_) + { + } + + const char* genre_strings[] = + { + "romance", + "fiction", + "horror", + "history", + "philosophy" + }; + + void genre_simpl:: + pre (genre g) + { + base_impl_.pre (genre_strings[g]); + } + + // person_simpl + // + void person_simpl:: + pre (const person& p) + { + person_ = &p; + } + + std::string person_simpl:: + name () + { + return person_->name (); + } + + std::string person_simpl:: + born () + { + return person_->born (); + } + + bool person_simpl:: + died_present () + { + return !person_->died ().empty (); + } + + std::string person_simpl:: + died () + { + return person_->died (); + } + + // author_simpl + // + author_simpl:: + author_simpl () + : author_sskel (&base_impl_) + { + } + + void author_simpl:: + pre (const author& a) + { + base_impl_.pre (a); + author_ = &a; + } + + bool author_simpl:: + recommends_present () + { + return !author_->recommends ().empty (); + } + + std::string author_simpl:: + recommends () + { + return author_->recommends (); + } + + // book_simpl + // + + void book_simpl:: + pre (const book& b) + { + book_ = &b; + ai_ = b.author ().begin (); + } + + library::isbn book_simpl:: + isbn () + { + return book_->isbn (); + } + + const library::title& book_simpl:: + title () + { + return book_->title (); + } + + + library::genre book_simpl:: + genre () + { + return book_->genre (); + } + + bool book_simpl:: + author_next () + { + return ai_ != book_->author ().end (); + } + + const library::author& book_simpl:: + author () + { + return *ai_++; + } + + bool book_simpl:: + available () + { + return book_->available (); + } + + std::string book_simpl:: + id () + { + return book_->id (); + } + + // catalog_simpl + // + void catalog_simpl:: + pre (const catalog& c) + { + catalog_ = &c; + ci_ = c.begin (); + } + + bool catalog_simpl:: + book_next () + { + return ci_ != catalog_->end (); + } + + const library::book& catalog_simpl:: + book () + { + return *ci_++; + } +} + |