aboutsummaryrefslogtreecommitdiff
path: root/odb/result.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/result.hxx')
-rw-r--r--odb/result.hxx28
1 files changed, 27 insertions, 1 deletions
diff --git a/odb/result.hxx b/odb/result.hxx
index b85242f..9f590d0 100644
--- a/odb/result.hxx
+++ b/odb/result.hxx
@@ -16,10 +16,36 @@
namespace odb
{
- struct result_impl: details::shared_base
+ class result_impl: public details::shared_base
{
+ public:
virtual
~result_impl ();
+
+ virtual void
+ invalidate () = 0;
+
+ protected:
+ result_impl (connection&);
+
+ protected:
+ database& db_;
+ connection& conn_;
+
+ // Doubly-linked list of results.
+ //
+ // prev_ == 0 means we are the first element.
+ // next_ == 0 means we are the last element.
+ // next_ == this means we are not on the list.
+ //
+ protected:
+ friend class connection;
+
+ void
+ list_remove ();
+
+ result_impl* prev_;
+ result_impl* next_;
};
template <typename T, class_kind kind>