22 #include "pqxx/compiler-public.hxx"
23 #include "pqxx/compiler-internal-pre.hxx"
25 #include "pqxx/except"
34 class const_row_iterator;
35 class const_reverse_row_iterator;
52 class PQXX_LIBEXPORT
row
65 row(
const result *r,
size_t i) PQXX_NOEXCEPT;
73 PQXX_PURE
bool operator==(
const row &) const PQXX_NOEXCEPT;
74 bool operator!=(const
row &rhs) const PQXX_NOEXCEPT
75 {
return !operator==(rhs); }
78 const_iterator begin() const PQXX_NOEXCEPT;
79 const_iterator cbegin() const PQXX_NOEXCEPT;
80 const_iterator end() const PQXX_NOEXCEPT;
81 const_iterator cend() const PQXX_NOEXCEPT;
87 reference front() const PQXX_NOEXCEPT;
88 reference back() const PQXX_NOEXCEPT;
95 reference operator[](size_type) const PQXX_NOEXCEPT;
96 reference operator[](
int) const PQXX_NOEXCEPT;
100 reference operator[](const
char[]) const;
104 reference operator[](const std::
string &) const;
105 reference at(size_type) const;
106 reference at(
int) const;
110 reference at(const
char[]) const;
114 reference at(const std::
string &) const;
118 {
return m_End-m_Begin; }
120 void swap(
row &) PQXX_NOEXCEPT;
122 size_t rownumber() const PQXX_NOEXCEPT {
return m_Index; }
128 size_type column_number(
const std::string &ColName)
const
130 {
return column_number(ColName.c_str()); }
133 size_type column_number(
const char[])
const;
136 oid column_type(size_type)
const;
140 {
return column_type(
size_type(ColNum)); }
144 {
return column_type(column_number(ColName)); }
148 {
return column_type(column_number(ColName)); }
151 oid column_table(size_type ColNum)
const;
155 {
return column_table(
size_type(ColNum)); }
158 {
return column_table(column_number(ColName)); }
168 size_type table_column(size_type)
const;
172 {
return table_column(
size_type(ColNum)); }
176 {
return table_column(column_number(ColName)); }
179 size_t num()
const {
return rownumber(); }
193 row slice(size_type Begin, size_type End)
const;
196 PQXX_PURE
bool empty() const PQXX_NOEXCEPT;
207 row() PQXX_DELETED_OP;
213 public std::iterator<std::random_access_iterator_tag,
218 typedef std::iterator<std::random_access_iterator_tag,
250 { m_col = size_type(difference_type(m_col) + i);
return *
this; }
252 { m_col = size_type(difference_type(m_col) - i);
return *
this; }
260 {
return col()==i.col();}
262 {
return col()!=i.col();}
264 {
return col()<i.col();}
266 {
return col()<=i.col();}
268 {
return col()>i.col();}
270 {
return col()>=i.col();}
295 using iterator_type::iterator_category;
297 using iterator_type::pointer;
299 using iterator_type::value_type;
303 typedef field value_type;
313 PQXX_PURE iterator_type base() const PQXX_NOEXCEPT;
319 using iterator_type::operator->;
320 using iterator_type::operator*;
329 { iterator_type::operator=(r);
return *
this; }
331 { iterator_type::operator--();
return *
this; }
334 { iterator_type::operator++();
return *
this; }
337 { iterator_type::operator-=(i);
return *
this; }
339 { iterator_type::operator+=(i);
return *
this; }
352 {
return rhs.const_row_iterator::operator-(*this); }
361 {
return iterator_type::operator==(rhs); }
364 {
return !operator==(rhs); }
367 {
return iterator_type::operator>(rhs); }
369 {
return iterator_type::operator>=(rhs); }
371 {
return iterator_type::operator<(rhs); }
373 {
return iterator_type::operator<=(rhs); }
378 inline const_row_iterator
390 inline const_row_iterator
420 #include "pqxx/compiler-internal-post.hxx"
row_size_type size_type
Definition: row.hxx:55
unsigned int row_size_type
Definition: field.hxx:42
const_row_iterator & operator-=(difference_type i)
Definition: row.hxx:251
const_reverse_row_iterator const_reverse_iterator
Definition: row.hxx:61
bool operator!=(const const_reverse_row_iterator &rhs) const PQXX_NOEXCEPT
Definition: row.hxx:362
row_difference_type difference_type
Definition: row.hxx:56
difference_type operator-(const const_reverse_row_iterator &rhs) const
Definition: row.hxx:351
bool operator==(const const_row_iterator &i) const
Definition: row.hxx:259
const_row_iterator & operator+=(difference_type i)
Definition: row.hxx:249
bool operator>(const const_row_iterator &i) const
Definition: row.hxx:267
reference operator*() const
Definition: row.hxx:237
bool operator<(const const_row_iterator &i) const
Definition: row.hxx:263
oid column_table(int ColNum) const
What table did this column come from?
Definition: row.hxx:154
const_row_iterator & operator--()
Definition: row.hxx:247
~row() PQXX_NOEXCEPT
Definition: row.hxx:67
const_row_iterator super
Definition: row.hxx:293
const_result_iterator operator+(result::difference_type o, const_result_iterator i)
Definition: result.hxx:476
bool operator==(const const_reverse_row_iterator &rhs) const PQXX_NOEXCEPT
Definition: row.hxx:359
Reference to one row in a result.
Definition: row.hxx:52
size_type table_column(const std::string &ColName) const
What column number in its table did this result column come from?
Definition: row.hxx:175
bool operator<=(const const_row_iterator &i) const
Definition: row.hxx:265
Reference to a field in a result set.
Definition: field.hxx:51
oid column_type(const std::string &ColName) const
Type of given column.
Definition: row.hxx:143
bool operator!=(const const_row_iterator &i) const
Definition: row.hxx:261
const_reverse_iterator reverse_iterator
Definition: row.hxx:62
const_iterator iterator
Definition: row.hxx:58
row::size_type size_type
Definition: row.hxx:223
const_row_iterator & operator++()
Definition: row.hxx:245
const_row_iterator operator+(difference_type) const
Definition: row.hxx:379
bool operator>(const const_reverse_row_iterator &rhs) const
Definition: row.hxx:370
const_row_iterator const_iterator
Definition: row.hxx:57
bool operator>=(const const_row_iterator &i) const
Definition: row.hxx:269
oid column_table(const std::string &ColName) const
What table did this column come from?
Definition: row.hxx:157
const_reverse_row_iterator operator-(difference_type i)
Definition: row.hxx:348
Iterator for fields in a row. Use as row::const_iterator.
Definition: row.hxx:212
const_row_iterator(const row &T, row::size_type C) PQXX_NOEXCEPT
Definition: row.hxx:227
bool operator<=(const const_reverse_row_iterator &rhs) const
Definition: row.hxx:368
oid column_type(const char ColName[]) const
Type of given column.
Definition: row.hxx:147
const_row_iterator pointer
Definition: row.hxx:60
const_row_iterator operator-(difference_type) const
Definition: row.hxx:391
const_reverse_row_iterator & operator--()
Definition: row.hxx:333
bool operator<(const const_reverse_row_iterator &rhs) const
Definition: row.hxx:366
const_reverse_row_iterator & operator+=(difference_type i)
Definition: row.hxx:336
bool operator>=(const const_reverse_row_iterator &rhs) const
Definition: row.hxx:372
const_reverse_row_iterator operator++()
Definition: row.hxx:330
const_reverse_row_iterator(const const_reverse_row_iterator &r)
Definition: row.hxx:307
size_t num() const
Definition: row.hxx:179
signed int row_difference_type
Definition: field.hxx:45
const_row_iterator iterator_type
Definition: row.hxx:294
const_reverse_row_iterator(const super &rhs) PQXX_NOEXCEPT
Definition: row.hxx:310
const_reverse_row_iterator & operator-=(difference_type i)
Definition: row.hxx:338
size_type table_column(int ColNum) const
What column number in its table did this result column come from?
Definition: row.hxx:171
row::difference_type difference_type
Definition: row.hxx:224
size_t size_type
Definition: field.hxx:54
pointer operator->() const
Definition: row.hxx:236
field reference
Definition: row.hxx:225
Reverse iterator for a row. Use as row::const_reverse_iterator.
Definition: row.hxx:290
const_row_iterator(const field &F) PQXX_NOEXCEPT
Definition: row.hxx:230
Result set containing data returned by a query or command.
Definition: result.hxx:78
row_size_type num() const
Definition: field.hxx:106
field reference
Definition: row.hxx:59
oid column_type(int ColNum) const
Type of given column.
Definition: row.hxx:139
const_reverse_row_iterator operator+(difference_type i) const
Definition: row.hxx:346