#include <OTC/collctn/deque.hh> template<class T> class OTC_Deque {
public:
static os_typespec* get_os_typespec();
typedef OTC_Modifier<T> type1;
type1 dummy1();
inline ~OTC_Deque();
inline OTC_Deque();
OTC_Deque(OTC_Deque<T> const& theDeque);
OTC_Deque(OTC_Deque<T>& theDeque, OTC_ShallowCopy);
OTC_Deque<T>& operator=(OTC_Deque<T> const& theDeque);
inline u_int population() const;
inline OTC_Boolean isEmpty() const;
inline void addFirst(T const& theItem);
inline void addLast(T const& theItem);
inline T& first();
inline T const& first() const;
inline T& last();
inline T const& last() const;
inline void removeAll();
inline void removeFirst();
inline void removeLast();
inline OTC_Iterator<T> items( OTC_Direction theDirection=OTCLIB_FORWARD, OTC_Protection theProtection=OTCLIB_SAFE ) const;
inline OTC_Modifier<T> items( OTC_Direction theDirection=OTCLIB_FORWARD, OTC_Protection theProtection=OTCLIB_SAFE );
protected:
OTC_Cursor<T>* _items( OTC_Direction theDirection, OTC_Protection theProtection ) const;
OTC_Link* _link(T const& theItem);
};
OTC_Deque
implements a list of objects where access to and
manipulation of items, is only permitted on items occurring at the
ends of the list.
inline OTC_Deque();
OTC_Deque(OTC_Deque<T> const& theDeque);
theDeque
.
OTC_Deque(OTC_Deque<T>& theDeque, OTC_ShallowCopy);
theDeque
.
OTC_Deque<T>& operator=(OTC_Deque<T> const& theDeque);
theDeque
.
inline u_int population() const;
inline OTC_Boolean isEmpty() const;
OTCLIB_TRUE
if there are no
items in the deque.
inline void addFirst(T const& theItem);
theItem
at the head of the list.
inline void addLast(T const& theItem);
theItem
to the tail of the list.
inline T& first();
inline T const& first() const;
inline T& last();
inline T const& last() const;
inline void removeAll();
inline void removeFirst();
inline void removeLast();
OTCLIB_SAFE
or OTCLIB_UNSAFE
.
To get an unsafe iterator, the OTCLIB_UNSAFE
argument should
be used.
The first argument to the following functions indicates the
direction of traversal of the iterator. Traversal in the
direction of first to last item is indicated by a value of
OTCLIB_FORWARD
. Traversal in the reverse direction is
indicated by a value of OTCLIB_BACKWARD
. The default value
is OTCLIB_FORWARD
.
inline OTC_Iterator<T> items(
OTC_Direction theDirection=OTCLIB_FORWARD,
OTC_Protection theProtection=OTCLIB_SAFE
) const;
inline OTC_Modifier<T> items(
OTC_Direction theDirection=OTCLIB_FORWARD,
OTC_Protection theProtection=OTCLIB_SAFE
);
OTC_Bucket
class is used internally to hold items in the
list. Thus, the OTC_BaseActions
class may be used to provide
actions to be performed, when items are inserted and removed from
the list.
OTC_Iterator
, OTC_Modifier
, OTC_Bucket
, OTC_BaseActions