SourcePro® API Reference Guide

Product Documentation:
   SourcePro
Documentation Home
List of all members | Public Member Functions
RWTQueue< T, C > Class Template Reference

A queue of templatized objects that supports user-specified containers. More...

#include <rw/tqueue.h>

Public Member Functions

 RWTQueue ()
 
 RWTQueue (const C &rhs)
 
 RWTQueue (const RWTQueue &rhs)
 
 RWTQueue (C &&rhs)
 
 RWTQueue (RWTQueue &&rhs)
 
void clear ()
 
size_t entries () const
 
first () const
 
get ()
 
void insert (const T &a)
 
void insert (T &&a)
 
bool isEmpty () const
 
last () const
 
RWTQueueoperator= (const RWTQueue &rhs)
 
RWTQueueoperator= (RWTQueue &&rhs)
 
void swap (RWTQueue< T, C > &rhs)
 

Detailed Description

template<class T, class C>
class RWTQueue< T, C >

Class RWTQueue represents a parameterized queue. Not only can the type of object inserted into the queue be parameterized, but also the implementation.

Parameter T represents the type of object in the queue, either a class or built-in type. The class T must have:

Parameter C represents the class used for implementation. The class C must provide the following interface (or equivalent):

These methods must behave in a manner that is consistent with that of RWTValDlist for this class to function as intended.

Useful choices for C are RWTValSlist or RWTValDlist. Vectors, such as RWTValOrderedVector, can also be used, but tend to be less efficient at removing an object from the front of the queue.

Synopsis
#include <rw/tqueue.h>
Persistence
None
Example
#include <iostream>
#include <rw/tqueue.h>
#include <rw/cstring.h>
#include <rw/tvslist.h>
int main()
{
q.insert("one"); // Type conversion occurs
q.insert("two");
q.insert("three");
while (!q.isEmpty()) {
std::cout << q.get() << std::endl;
}
return 0;
}

Program output

one
two
three

Constructor & Destructor Documentation

template<class T, class C>
RWTQueue< T, C >::RWTQueue ( )
inline

Constructs a queue.

template<class T, class C>
RWTQueue< T, C >::RWTQueue ( const C &  rhs)
inlineexplicit

Constructs a queue from the container rhs.

template<class T, class C>
RWTQueue< T, C >::RWTQueue ( const RWTQueue< T, C > &  rhs)
inline

Copy constructor. Constructs self as a copy of rhs.

template<class T, class C>
RWTQueue< T, C >::RWTQueue ( C &&  rhs)
inlineexplicit

Move constructor. Takes ownership of the data owned by rhs.

Condition:
This method is available only on platforms with rvalue reference support.
template<class T, class C>
RWTQueue< T, C >::RWTQueue ( RWTQueue< T, C > &&  rhs)
inline

Move constructor. Takes ownership of the data owned by rhs.

Condition:
This method is available only on platforms with rvalue reference support.

Member Function Documentation

template<class T, class C>
void RWTQueue< T, C >::clear ( void  )
inline

Calls C::clear() on the underlying container.

template<class T, class C>
size_t RWTQueue< T, C >::entries ( void  ) const
inline

Returns the result of calling C::entries() on the underlying container.

template<class T, class C>
T RWTQueue< T, C >::first ( void  ) const
inline

Returns the result of calling C::first() on the underlying container.

template<class T, class C>
T RWTQueue< T, C >::get ( void  )
inline

Returns the result of calling C::removeFirst() on the underlying container.

template<class T, class C>
void RWTQueue< T, C >::insert ( const T &  a)
inline

Calls C::append(a) on the underlying container.

template<class T, class C>
void RWTQueue< T, C >::insert ( T &&  a)
inline

Calls C::append(a) on the underlying container.

Condition:
This method is available only on platforms with rvalue reference support.
template<class T, class C>
bool RWTQueue< T, C >::isEmpty ( ) const
inline

Returns the result of calling C::isEmpty() on the underlying container.

template<class T, class C>
T RWTQueue< T, C >::last ( void  ) const
inline

Returns the result of calling C::last() on the underlying container.

template<class T, class C>
RWTQueue& RWTQueue< T, C >::operator= ( const RWTQueue< T, C > &  rhs)
inline

Assignment operator. Sets self to a copy of rhs.

template<class T, class C>
RWTQueue& RWTQueue< T, C >::operator= ( RWTQueue< T, C > &&  rhs)
inline

Move assignment. Takes ownership of the data owned by rhs.

Condition:
This method is available only on platforms with rvalue reference support.
template<class T, class C>
void RWTQueue< T, C >::swap ( RWTQueue< T, C > &  rhs)
inline

Swaps the data owned by self with the data owned by rhs.

Copyright © 2021 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.