diff options
Diffstat (limited to 'libodb/odb/view-result.txx')
-rw-r--r-- | libodb/odb/view-result.txx | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/libodb/odb/view-result.txx b/libodb/odb/view-result.txx new file mode 100644 index 0000000..5c62253 --- /dev/null +++ b/libodb/odb/view-result.txx @@ -0,0 +1,39 @@ +// file : odb/view-result.txx +// license : GNU GPL v2; see accompanying LICENSE file + +namespace odb +{ + // + // view_result_impl + // + + template <typename T> + typename view_result_impl<T>::pointer_type& + view_result_impl<T>:: + current () + { + if (pointer_traits::null_ptr (current_) && !end_) + { + pointer_type p (view_traits::create ()); + view_type& view (pointer_traits::get_ref (p)); + current (p); + load (view); + } + + return current_; + } + + // + // result_iterator + // + + template <typename T> + void result_iterator<T, class_view>:: + load (view_type& view) + { + if (res_->end ()) + return; + + res_->load (view); + } +} |