OpenWalnut  1.4.0
Public Types | Public Member Functions
WSharedSequenceContainer< S > Class Template Reference

This class provides a common interface for thread-safe access to sequence containers (list, vector, dequeue ). More...

#include <WSharedSequenceContainer.h>

+ Inheritance diagram for WSharedSequenceContainer< S >:

List of all members.

Public Types

typedef S::const_iterator ConstIterator
 A typedef for the correct const iterator useful to traverse this sequence container.
typedef S::iterator Iterator
 A typedef for the correct iterator to traverse this sequence container.
typedef S::value_type value_type
 The type of the elements.

Public Member Functions

 WSharedSequenceContainer ()
 Default constructor.
virtual ~WSharedSequenceContainer ()
 Destructor.
void push_back (const typename S::value_type &x)
 Adds a new element at the end of the container.
void push_front (const typename S::value_type &x)
 Adds a new element at the beginning of the container.
void pop_back ()
 Removes an element from the end.
void clear ()
 Clears the container.
size_t size () const
 The size of the container.
S::value_type & operator[] (size_t n)
 Get item at position n.
const S::value_type & operator[] (size_t n) const
 Get item at position n.
S::value_type & at (size_t n)
 Get item at position n.
const S::value_type & at (size_t n) const
 Get item at position n.
void remove (const typename S::value_type &element)
 Searches and removes the specified element.
WSharedSequenceContainer< S >
::Iterator 
erase (typename WSharedSequenceContainer< S >::Iterator position)
 Erase the element at the specified position.
WSharedSequenceContainer< S >
::Iterator 
erase (typename WSharedSequenceContainer< S >::Iterator first, typename WSharedSequenceContainer< S >::Iterator last)
 Erase the specified range of elements.
void replace (const typename S::value_type &oldValue, const typename S::value_type &newValue)
 Replaces the specified old value by a new one.
size_t count (const value_type &value)
 Counts the number of occurrences of the specified value inside the container.
template<typename Comparator >
void sort (Comparator comp)
 Resorts the container using the specified comparator from its begin to its end.
template<typename Comparator >
void sort (typename WSharedSequenceContainer< S >::Iterator first, typename WSharedSequenceContainer< S >::Iterator last, Comparator comp)
 Resorts the container using the specified comparator between [first,last) in ascending order.
template<typename Comparator >
void stableSort (Comparator comp)
 Resorts the container using the specified comparator from its begin to its end.
template<typename Comparator >
void stableSort (typename WSharedSequenceContainer< S >::Iterator first, typename WSharedSequenceContainer< S >::Iterator last, Comparator comp)
 Resorts the container using the specified comparator between [first,last) in ascending order.
WSharedSequenceContainer< S >
::Iterator 
find (typename WSharedSequenceContainer< S >::Iterator first, typename WSharedSequenceContainer< S >::Iterator last, const typename S::value_type &value)
 Searches the specified value in the range [first,last).
WSharedSequenceContainer< S >
::ConstIterator 
find (const typename S::value_type &value)
 Searches the specified value in the range [begin,end).

Detailed Description

template<typename S>
class WSharedSequenceContainer< S >

This class provides a common interface for thread-safe access to sequence containers (list, vector, dequeue ).

Parameters:
Sthe sequence container to use. Everything is allowed here which provides push_back and pop_back as well as size functionality.

Definition at line 39 of file WSharedSequenceContainer.h.


Member Typedef Documentation

template<typename S>
typedef S::const_iterator WSharedSequenceContainer< S >::ConstIterator

A typedef for the correct const iterator useful to traverse this sequence container.

Definition at line 47 of file WSharedSequenceContainer.h.

template<typename S>
typedef S::iterator WSharedSequenceContainer< S >::Iterator

A typedef for the correct iterator to traverse this sequence container.

Definition at line 52 of file WSharedSequenceContainer.h.

template<typename S>
typedef S::value_type WSharedSequenceContainer< S >::value_type

The type of the elements.

Definition at line 57 of file WSharedSequenceContainer.h.


Constructor & Destructor Documentation

template<typename S >
WSharedSequenceContainer< S >::WSharedSequenceContainer ( )

Default constructor.

Definition at line 263 of file WSharedSequenceContainer.h.

template<typename S >
WSharedSequenceContainer< S >::~WSharedSequenceContainer ( ) [virtual]

Destructor.

Definition at line 270 of file WSharedSequenceContainer.h.


Member Function Documentation

template<typename S >
S::value_type & WSharedSequenceContainer< S >::at ( size_t  n)

Get item at position n.

Uses the at-method of the underlying container. Please do not use this for iteration as it locks every access. Use iterators and read/write tickets for fast iteration.

Parameters:
nthe item index
Returns:
reference to element at the specified position

Definition at line 332 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getReadTicket().

template<typename S >
const S::value_type & WSharedSequenceContainer< S >::at ( size_t  n) const

Get item at position n.

Uses the at-method of the underlying container. Please do not use this for iteration as it locks every access. Use iterators and read/write tickets for fast iteration.

Parameters:
nthe item index
Returns:
reference to element at the specified position

Definition at line 340 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getReadTicket().

template<typename S >
void WSharedSequenceContainer< S >::clear ( )

Clears the container.

Definition at line 300 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

template<typename S >
size_t WSharedSequenceContainer< S >::count ( const value_type value)

Counts the number of occurrences of the specified value inside the container.

This is a comfortable forwarder for std::count.

Parameters:
valuethe value to count
Returns:
the number of items found.

Definition at line 380 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getReadTicket().

Referenced by WGEColormapping::deregisterTextureInst(), WGEColormapping::registerTextureInst(), and WGEColormapping::replaceTextureInst().

template<typename S>
WSharedSequenceContainer< S >::Iterator WSharedSequenceContainer< S >::erase ( typename WSharedSequenceContainer< S >::Iterator  position)

Erase the element at the specified position.

Read your STL reference for more details.

Parameters:
positionwhere to erase
Returns:
A random access iterator pointing to the new location of the element that followed the last element erased by the function call.

Definition at line 355 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

template<typename S>
WSharedSequenceContainer< S >::Iterator WSharedSequenceContainer< S >::erase ( typename WSharedSequenceContainer< S >::Iterator  first,
typename WSharedSequenceContainer< S >::Iterator  last 
)

Erase the specified range of elements.

Read your STL reference for more details.

Parameters:
firstIterators specifying a range within the vector to be removed: [first,last).
lastIterators specifying a range within the vector to be removed: [first,last).
Returns:
A random access iterator pointing to the new location of the element that followed the last element erased by the function call.

Definition at line 363 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

template<typename S>
WSharedSequenceContainer< S >::Iterator WSharedSequenceContainer< S >::find ( typename WSharedSequenceContainer< S >::Iterator  first,
typename WSharedSequenceContainer< S >::Iterator  last,
const typename S::value_type &  value 
)

Searches the specified value in the range [first,last).

Parameters:
firstthe first element
lastthe last element
valuethe value to search.
Returns:
the iterator pointing to the found element.

Definition at line 421 of file WSharedSequenceContainer.h.

template<typename S>
WSharedSequenceContainer< S >::ConstIterator WSharedSequenceContainer< S >::find ( const typename S::value_type &  value)

Searches the specified value in the range [begin,end).

Parameters:
valuethe value to search.
Returns:
the iterator pointing to the found element.

Definition at line 430 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getReadTicket().

template<typename S >
S::value_type & WSharedSequenceContainer< S >::operator[] ( size_t  n)

Get item at position n.

Uses the [] operator of the underlying container. Please do not use this for iteration as it locks every access. Use iterators and read/write tickets for fast iteration.

Parameters:
nthe item index
Returns:
reference to element at the specified position

Definition at line 317 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getReadTicket().

template<typename S >
const S::value_type & WSharedSequenceContainer< S >::operator[] ( size_t  n) const

Get item at position n.

Uses the [] operator of the underlying container. Please do not use this for iteration as it locks every access. Use iterators and read/write tickets for fast iteration.

Parameters:
nthe item index
Returns:
reference to element at the specified position

Definition at line 325 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getReadTicket().

template<typename S >
void WSharedSequenceContainer< S >::pop_back ( )

Removes an element from the end.

Definition at line 292 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

template<typename S>
void WSharedSequenceContainer< S >::push_back ( const typename S::value_type &  x)

Adds a new element at the end of the container.

Parameters:
xthe new element.

Definition at line 276 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

Referenced by WSubject::addDataSet(), WLogger::addStream(), WDataHandler::addSubject(), WBatchLoader::threadMain(), and WLogger::WLogger().

template<typename S>
void WSharedSequenceContainer< S >::push_front ( const typename S::value_type &  x)

Adds a new element at the beginning of the container.

Parameters:
xthe new element.

Definition at line 284 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

Referenced by WGEColormapping::registerTextureInst().

template<typename S>
void WSharedSequenceContainer< S >::remove ( const typename S::value_type &  element)

Searches and removes the specified element.

If it is not found, nothing happens. It mainly is a comfortable forwarder for std::remove and S::erase.

Parameters:
elementthe element to remove

Definition at line 347 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

Referenced by WProjectFile::deregisterParser(), WGEColormapping::deregisterTextureInst(), and WLogger::removeStream().

template<typename S>
void WSharedSequenceContainer< S >::replace ( const typename S::value_type &  oldValue,
const typename S::value_type &  newValue 
)

Replaces the specified old value by a new one.

If the old one does not exist, nothing happens. This is a comfortable forwarder for std::replace.

Parameters:
oldValuethe old value to replace
newValuethe new value

Definition at line 373 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

Referenced by WGEColormapping::replaceTextureInst().

template<typename S >
size_t WSharedSequenceContainer< S >::size ( ) const

The size of the container.

Returns:
the size.
Notes:
: be aware that the size can change at every moment after getting the size, since the read lock got freed. Better use access objects to lock the container and use size() on the container directly.

Definition at line 308 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getReadTicket().

Referenced by WGEColormapping::size(), WSubjectTest::testAddGetDataSet(), and WSubjectTest::testGetNumberOfDataSet().

template<typename S >
template<typename Comparator >
void WSharedSequenceContainer< S >::sort ( Comparator  comp)

Resorts the container using the specified comparator from its begin to its end.

Template Parameters:
Comparatorthe comparator type. Usually a boost::function or class providing the operator().
Parameters:
compthe comparator

Definition at line 388 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

Referenced by WGEColormapping::sort().

template<typename S>
template<typename Comparator >
void WSharedSequenceContainer< S >::sort ( typename WSharedSequenceContainer< S >::Iterator  first,
typename WSharedSequenceContainer< S >::Iterator  last,
Comparator  comp 
)

Resorts the container using the specified comparator between [first,last) in ascending order.

Parameters:
firstthe first element
lastthe last element
compthe comparator

Definition at line 396 of file WSharedSequenceContainer.h.

template<typename S >
template<typename Comparator >
void WSharedSequenceContainer< S >::stableSort ( Comparator  comp)

Resorts the container using the specified comparator from its begin to its end.

Uses stable sort algorithm.

Template Parameters:
Comparatorthe comparator type. Usually a boost::function or class providing the operator().
Parameters:
compthe comparator

Definition at line 405 of file WSharedSequenceContainer.h.

References WSharedObject< T >::getWriteTicket().

Referenced by WGEColormapping::stableSort().

template<typename S>
template<typename Comparator >
void WSharedSequenceContainer< S >::stableSort ( typename WSharedSequenceContainer< S >::Iterator  first,
typename WSharedSequenceContainer< S >::Iterator  last,
Comparator  comp 
)

Resorts the container using the specified comparator between [first,last) in ascending order.

Uses stable sort algorithm.

Parameters:
firstthe first element
lastthe last element
compthe comparator

Definition at line 413 of file WSharedSequenceContainer.h.


The documentation for this class was generated from the following file: