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"