// file : odb/mysql/result.txx // author : Boris Kolpackov // copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb { namespace mysql { template result_impl:: ~result_impl () { } template result_impl:: result_impl (details::shared_ptr statement, object_statements& statements) : statement_ (statement), statements_ (statements) { next (); } template void result_impl:: current () { if (!this->end_) { pointer_type p (traits::create ()); current (p); traits::init (pointer_traits::get_ref (p), statements_.image ()); } } template void result_impl:: current (T& x) { if (!this->end_) traits::init (x, statements_.image ()); } template void result_impl:: next () { this->current (pointer_type ()); query_statement::result r (statement_->fetch ()); switch (r) { case query_statement::truncated: { typename traits::image_type& i (statements_.image ()); if (traits::grow (i, statements_.image_error ())) { traits::bind (statements_.image_binding (), i); statement_->refetch (); } // Fall throught. } case query_statement::success: { break; } case query_statement::no_data: { this->end_ = true; break; } } } template void result_impl:: cache () { statement_->cache (); } template std::size_t result_impl:: size () { return statement_->result_size (); } } }