2003-03-26 11:04:29 +00:00
|
|
|
// -*- C++ -*-
|
|
|
|
|
|
|
|
#ifndef ROW_LIST_H
|
|
|
|
#define ROW_LIST_H
|
|
|
|
|
|
|
|
#include <iterator>
|
|
|
|
|
|
|
|
class Row;
|
|
|
|
|
|
|
|
///
|
|
|
|
class RowList {
|
|
|
|
public:
|
|
|
|
///
|
|
|
|
class iterator {
|
|
|
|
public:
|
|
|
|
///
|
|
|
|
typedef std::bidirectional_iterator_tag iterator_category;
|
|
|
|
///
|
|
|
|
typedef Row * value_type;
|
|
|
|
///
|
|
|
|
typedef ptrdiff_t difference_type;
|
|
|
|
///
|
|
|
|
typedef Row * pointer;
|
|
|
|
///
|
|
|
|
typedef Row & reference;
|
|
|
|
///
|
|
|
|
iterator();
|
|
|
|
///
|
|
|
|
iterator(value_type);
|
|
|
|
///
|
|
|
|
reference operator*();
|
|
|
|
///
|
|
|
|
pointer operator->();
|
|
|
|
///
|
|
|
|
iterator & operator++();
|
|
|
|
///
|
|
|
|
iterator operator++(int);
|
|
|
|
///
|
|
|
|
iterator & operator--();
|
|
|
|
///
|
|
|
|
iterator operator--(int);
|
|
|
|
private:
|
|
|
|
///
|
|
|
|
Row * ptr;
|
|
|
|
};
|
|
|
|
///
|
2003-03-31 16:57:45 +00:00
|
|
|
class const_iterator {
|
|
|
|
public:
|
|
|
|
///
|
|
|
|
typedef std::bidirectional_iterator_tag iterator_category;
|
|
|
|
///
|
|
|
|
typedef Row * value_type;
|
|
|
|
///
|
|
|
|
typedef ptrdiff_t difference_type;
|
|
|
|
///
|
|
|
|
typedef Row const * const_pointer;
|
|
|
|
///
|
|
|
|
typedef Row const & const_reference;
|
|
|
|
///
|
|
|
|
const_iterator();
|
|
|
|
///
|
|
|
|
const_iterator(value_type);
|
|
|
|
///
|
|
|
|
const_reference operator*();
|
|
|
|
///
|
|
|
|
const_pointer operator->();
|
|
|
|
///
|
|
|
|
const_iterator & operator++();
|
|
|
|
///
|
|
|
|
const_iterator operator++(int);
|
|
|
|
///
|
|
|
|
const_iterator & operator--();
|
|
|
|
///
|
|
|
|
const_iterator operator--(int);
|
|
|
|
private:
|
|
|
|
///
|
|
|
|
Row * ptr;
|
|
|
|
};
|
|
|
|
///
|
2003-03-26 11:04:29 +00:00
|
|
|
RowList();
|
|
|
|
///
|
|
|
|
iterator insert(iterator it, Row * row);
|
|
|
|
///
|
|
|
|
void clear();
|
|
|
|
///
|
|
|
|
void erase(iterator it);
|
|
|
|
///
|
|
|
|
iterator begin();
|
|
|
|
///
|
2003-03-31 16:57:45 +00:00
|
|
|
const_iterator begin() const;
|
2003-03-26 11:04:29 +00:00
|
|
|
///
|
|
|
|
iterator end();
|
|
|
|
///
|
2003-03-31 16:57:45 +00:00
|
|
|
const_iterator end() const;
|
2003-03-26 11:04:29 +00:00
|
|
|
///
|
|
|
|
void push_back(Row *);
|
|
|
|
///
|
|
|
|
Row const & front() const;
|
|
|
|
///
|
|
|
|
Row & front();
|
|
|
|
///
|
|
|
|
Row const & back() const;
|
|
|
|
///
|
|
|
|
Row & back();
|
|
|
|
///
|
|
|
|
int size() const;
|
|
|
|
///
|
|
|
|
bool empty() const;
|
|
|
|
private:
|
|
|
|
///
|
|
|
|
Row * rowlist;
|
|
|
|
};
|
|
|
|
|
|
|
|
///
|
|
|
|
bool operator==(RowList::iterator const & i1,
|
|
|
|
RowList::iterator const & i2);
|
|
|
|
///
|
|
|
|
bool operator!=(RowList::iterator const & i1,
|
|
|
|
RowList::iterator const & i2);
|
|
|
|
|
2003-03-31 16:57:45 +00:00
|
|
|
///
|
|
|
|
bool operator==(RowList::const_iterator const & i1,
|
|
|
|
RowList::const_iterator const & i2);
|
|
|
|
///
|
|
|
|
bool operator!=(RowList::const_iterator const & i1,
|
|
|
|
RowList::const_iterator const & i2);
|
|
|
|
|
2003-03-26 11:04:29 +00:00
|
|
|
#endif
|