22 #include "pqxx/compiler-public.hxx"
23 #include "pqxx/compiler-internal-pre.hxx"
27 #ifdef PQXX_HAVE_LIMITS
31 #include "pqxx/result"
32 #include "pqxx/transaction_base"
117 static difference_type all() throw ();
129 static difference_type backward_all() throw ();
139 const PGSTD::
string &name() const throw () {
return m_name; }
143 const PGSTD::string &Name,
144 bool embellish_name=
true);
160 #ifdef PQXX_HAVE_LIMITS
161 return PGSTD::numeric_limits<int>::max()-1;
169 #ifdef PQXX_HAVE_LIMITS
170 return PGSTD::numeric_limits<int>::min()+1;
198 const PGSTD::string &query,
199 const PGSTD::string &cname,
206 const PGSTD::string &cname,
211 result fetch(difference_type rows, difference_type &displacement);
214 difference_type move(difference_type rows, difference_type &displacement);
239 void close() throw ();
242 difference_type adjust(difference_type hoped, difference_type actual);
243 static PGSTD::
string stridestring(difference_type);
253 result m_cached_current_row;
265 difference_type m_pos;
268 difference_type m_endpos;
275 result::difference_type size,
276 result::difference_type begin_pos,
277 result::difference_type end_pos);
298 transaction_base &trans,
299 const PGSTD::string &query,
300 const PGSTD::string &cname,
302 m_cur(trans, query, cname,
cursor_base::random_access, up, op, hold)
308 transaction_base &trans,
309 const PGSTD::string adopted_cursor) :
310 m_cur(trans, adopted_cursor, op)
316 void close() throw () { m_cur.close(); }
336 result retrieve(difference_type begin_pos, difference_type end_pos)
345 const PGSTD::string &
name()
const throw () {
return m_cur.name(); }
352 class icursor_iterator;
359 class icursor_iterator_icursorstream;
360 class icursorstream_icursor_iterator;
400 const PGSTD::string &query,
401 const PGSTD::string &basename,
434 operator bool()
const throw () {
return !m_done; }
464 void set_stride(difference_type stride);
470 friend class internal::gate::icursorstream_icursor_iterator;
477 internal::sql_cursor m_cur;
479 difference_type m_stride;
480 difference_type m_realpos, m_reqpos;
516 public PGSTD::iterator<PGSTD::input_iterator_tag,
532 const result &operator*()
const { refresh();
return m_here; }
533 const result *
operator->()
const { refresh();
return &m_here; }
541 {
return !operator==(rhs); }
544 {
return rhs < *
this; }
546 {
return !(*
this > rhs); }
548 {
return !(*
this < rhs); }
551 void refresh()
const;
553 friend class internal::gate::icursor_iterator_icursorstream;
554 difference_type pos()
const throw () {
return m_pos; }
555 void fill(
const result &);
559 difference_type m_pos;
566 #include "pqxx/compiler-internal-post.hxx"