// file : odb/sqlite/no-id-object-result.hxx // copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file #ifndef ODB_SQLITE_NO_ID_OBJECT_RESULT_HXX #define ODB_SQLITE_NO_ID_OBJECT_RESULT_HXX #include #include // std::size_t #include #include #include #include // query_base, query_params #include namespace odb { namespace sqlite { template class no_id_object_result_impl: public odb::no_id_object_result_impl { public: typedef odb::no_id_object_result_impl base_type; typedef typename base_type::object_type object_type; typedef typename base_type::pointer_type pointer_type; typedef object_traits_impl object_traits; typedef typename base_type::pointer_traits pointer_traits; typedef typename object_traits::statements_type statements_type; virtual ~no_id_object_result_impl (); no_id_object_result_impl (const query_base&, const details::shared_ptr&, statements_type&); virtual void load (object_type&); virtual void next (); virtual void cache (); virtual std::size_t size (); virtual void invalidate (); using base_type::current; private: // We need to hold on to the query parameters because SQLite uses // the parameter buffers to find each next row. // details::shared_ptr params_; details::shared_ptr statement_; statements_type& statements_; }; } } #include #include #endif // ODB_SQLITE_NO_ID_OBJECT_RESULT_HXX