22 #include "pqxx/compiler-public.hxx"
23 #include "pqxx/compiler-internal-pre.hxx"
25 #include "pqxx/except"
34 class const_tuple_iterator;
35 class const_reverse_tuple_iterator;
73 bool PQXX_PURE operator==(
const tuple &)
const throw ();
74 bool operator!=(const
tuple &rhs) const throw ()
75 {
return !operator==(rhs); }
78 const_iterator begin()
const throw ();
79 const_iterator end() const throw ();
85 reference front() const throw ();
86 reference back() const throw ();
91 reference operator[](size_type) const throw ();
92 reference operator[](
int) const throw ();
93 reference operator[](const
char[]) const;
94 reference operator[](const PGSTD::
string &) const;
96 reference at(
int) const throw (
pqxx::range_error);
97 reference at(const
char[]) const;
98 reference at(const PGSTD::
string &) const;
101 size_type size() const throw ()
102 {
return m_End-m_Begin; }
104 void swap(
tuple &) throw ();
106 size_t rownumber() const throw () {
return m_Index; }
112 size_type column_number(
const PGSTD::string &ColName)
const
114 {
return column_number(ColName.c_str()); }
117 size_type column_number(
const char[])
const;
120 oid column_type(size_type)
const;
124 {
return column_type(size_type(ColNum)); }
128 {
return column_type(column_number(ColName)); }
132 {
return column_type(column_number(ColName)); }
135 oid column_table(size_type ColNum)
const;
139 {
return column_table(size_type(ColNum)); }
142 {
return column_table(column_number(ColName)); }
155 size_type table_column(size_type)
const;
159 {
return table_column(size_type(ColNum)); }
163 {
return table_column(column_number(ColName)); }
166 size_t num()
const {
return rownumber(); }
180 tuple slice(size_type Begin, size_type End)
const;
183 bool PQXX_PURE empty()
const throw ();
200 public PGSTD::iterator<PGSTD::random_access_iterator_tag,
205 typedef PGSTD::iterator<PGSTD::random_access_iterator_tag,
236 { m_col = size_type(difference_type(m_col) + i);
return *
this; }
238 { m_col = size_type(difference_type(m_col) - i);
return *
this; }
246 {
return col()==i.col();}
248 {
return col()!=i.col();}
250 {
return col()<i.col();}
252 {
return col()<=i.col();}
254 {
return col()>i.col();}
256 {
return col()>=i.col();}
281 using iterator_type::iterator_category;
283 using iterator_type::pointer;
285 using iterator_type::value_type;
289 typedef field value_type;
290 typedef const field &reference;
299 iterator_type PQXX_PURE base()
const throw ();
305 using iterator_type::operator->;
306 using iterator_type::operator*;
315 { iterator_type::operator=(r);
return *
this; }
317 { iterator_type::operator--();
return *
this; }
320 { iterator_type::operator++();
return *
this; }
323 { iterator_type::operator-=(i);
return *
this; }
325 { iterator_type::operator+=(i);
return *
this; }
338 {
return rhs.const_tuple_iterator::operator-(*this); }
347 {
return iterator_type::operator==(rhs); }
350 {
return !operator==(rhs); }
353 {
return iterator_type::operator>(rhs); }
355 {
return iterator_type::operator>=(rhs); }
357 {
return iterator_type::operator<(rhs); }
359 {
return iterator_type::operator<=(rhs); }
364 inline const_tuple_iterator
368 tuple(home(), idx()),
369 size_type(difference_type(col()) + o));
376 inline const_tuple_iterator
380 tuple(home(), idx()),
381 size_type(difference_type(col()) - o));
386 {
return difference_type(num() - i.
num()); }
406 #include "pqxx/compiler-internal-post.hxx"
const_reverse_tuple_iterator operator-(difference_type i)
Definition: tuple.hxx:334
oid column_table(int ColNum) const
What table did this column come from?
Definition: tuple.hxx:138
bool operator<=(const const_tuple_iterator &i) const
Definition: tuple.hxx:251
const_tuple_iterator super
Definition: tuple.hxx:279
bool operator!=(const const_reverse_tuple_iterator &rhs) const
Definition: tuple.hxx:349
Reference to one row in a result.
Definition: tuple.hxx:52
tuple_difference_type difference_type
Definition: tuple.hxx:56
const_tuple_iterator operator-(difference_type) const
Definition: tuple.hxx:377
tuple_size_type size_type
Definition: tuple.hxx:55
bool operator<(const const_tuple_iterator &i) const
Definition: tuple.hxx:249
Reverse iterator for a tuple. Use as tuple::const_reverse_iterator.
Definition: tuple.hxx:276
size_type table_column(int ColNum) const
What column number in its table did this result column come from?
Definition: tuple.hxx:158
const_tuple_iterator operator+(difference_type) const
Definition: tuple.hxx:365
size_type table_column(const std::string &ColName) const
What column number in its table did this result column come from?
Definition: tuple.hxx:162
const_tuple_iterator & operator-=(difference_type i)
Definition: tuple.hxx:237
const_reverse_tuple_iterator & operator-=(difference_type i)
Definition: tuple.hxx:324
The home of all libpqxx classes, functions, templates, etc.
Definition: basic_connection.hxx:35
unsigned int tuple_size_type
Definition: field.hxx:34
~tuple()
Definition: tuple.hxx:67
tuple_size_type num() const
Definition: field.hxx:98
Reference to a field in a result set.
Definition: field.hxx:43
const_tuple_iterator const_iterator
Definition: tuple.hxx:57
const_reverse_tuple_iterator & operator--()
Definition: tuple.hxx:319
const_reverse_iterator reverse_iterator
Definition: tuple.hxx:62
bool operator!=(const const_tuple_iterator &i) const
Definition: tuple.hxx:247
const_reverse_tuple_iterator operator++()
Definition: tuple.hxx:316
const_reverse_tuple_iterator & operator+=(difference_type i)
Definition: tuple.hxx:322
signed int tuple_difference_type
Definition: field.hxx:37
tuple::difference_type difference_type
Definition: tuple.hxx:211
const_iterator iterator
Definition: tuple.hxx:58
bool operator>(const const_tuple_iterator &i) const
Definition: tuple.hxx:253
const_reverse_tuple_iterator const_reverse_iterator
Definition: tuple.hxx:61
oid column_type(const char ColName[]) const
Type of given column.
Definition: tuple.hxx:131
oid column_type(int ColNum) const
Type of given column.
Definition: tuple.hxx:123
const_tuple_iterator iterator_type
Definition: tuple.hxx:280
const_tuple_iterator & operator--()
Definition: tuple.hxx:233
oid column_table(const std::string &ColName) const
What table did this column come from?
Definition: tuple.hxx:141
const_reverse_tuple_iterator(const const_reverse_tuple_iterator &r)
Definition: tuple.hxx:293
difference_type operator-(const const_reverse_tuple_iterator &rhs) const
Definition: tuple.hxx:337
size_t num() const
Definition: tuple.hxx:166
const_tuple_iterator(const tuple &T, tuple::size_type C)
Definition: tuple.hxx:214
const_tuple_iterator(const field &F)
Definition: tuple.hxx:216
bool operator<=(const const_reverse_tuple_iterator &rhs) const
Definition: tuple.hxx:354
const_reverse_tuple_iterator(const super &rhs)
Definition: tuple.hxx:296
field reference
Definition: tuple.hxx:212
bool operator>(const const_reverse_tuple_iterator &rhs) const
Definition: tuple.hxx:356
bool operator>=(const const_tuple_iterator &i) const
Definition: tuple.hxx:255
reference operator*() const
Definition: tuple.hxx:223
pointer operator->() const
Definition: tuple.hxx:222
Iterator for fields in a tuple. Use as tuple::const_iterator.
Definition: tuple.hxx:199
const_result_iterator operator+(result::difference_type o, const_result_iterator i)
Definition: result.hxx:479
bool operator>=(const const_reverse_tuple_iterator &rhs) const
Definition: tuple.hxx:358
tuple::size_type size_type
Definition: tuple.hxx:210
bool operator==(const const_tuple_iterator &i) const
Definition: tuple.hxx:245
bool operator<(const const_reverse_tuple_iterator &rhs) const
Definition: tuple.hxx:352
field reference
Definition: tuple.hxx:59
oid column_type(const std::string &ColName) const
Type of given column.
Definition: tuple.hxx:127
const_reverse_tuple_iterator operator+(difference_type i) const
Definition: tuple.hxx:332
const_tuple_iterator & operator+=(difference_type i)
Definition: tuple.hxx:235
Something is out of range, similar to std::out_of_range.
Definition: except.hxx:203
const_tuple_iterator & operator++()
Definition: tuple.hxx:231
const_tuple_iterator pointer
Definition: tuple.hxx:60
Result set containing data returned by a query or command.
Definition: result.hxx:81
bool operator==(const const_reverse_tuple_iterator &rhs) const
Definition: tuple.hxx:346