User Manual, Developers Guide and API Documentation

wns::container::MultiWriteAccessible< T, N, I > Class Template Reference

Interface and base for classes which the [] operator can be applied to multiple times, allowing write access. More...

#include <container/MultiAccessible.hpp>

Inheritance diagram for wns::container::MultiWriteAccessible< T, N, I >:

Inheritance graph
[legend]

List of all members.

Public Types

typedef I IndexType
 The type of indexes in the [] operator.
typedef MultiWriteAccessible
< ValueType, N-1, IndexType > & 
Reference
 Reference to the next hyperplane (what is returned after [] has been applied once).
typedef
MultiAccessibleDefs::SizeType 
SizeType
 The type for sizes used in this class.
typedef T ValueType
 The type of the values that are accessed.

Public Member Functions

template<class InputIterator>
ValueTypeat (const InputIterator &first, const InputIterator &last)
 Select an element.
virtual SizeType dimSize (const SizeType &dim) const =0
 Get the size of a dimension.
virtual Reference operator[] (const IndexType &index)=0
 Select a hyperplane.
virtual SizeType size () const
 Get the size of the total structure.
virtual ~MultiWriteAccessible ()
 Desctructor.


Detailed Description

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
class wns::container::MultiWriteAccessible< T, N, I >

Parameters:
T Type of the values we want to access.
N Number of dimensions.
I Type of the index in the [] operator. This defaults to MultiAccessibleDefs::SizeType.
This class specifies following interface: "variable of type MultiWriteAccessible<@a T,@a N,@a I>"[index] returns a reference to a MultiWriteAccessible<T,N-1,I>, unless N == 1, where "variable of type MultiWriteAccessible<T,1,I>"[index] returns a reference to a T. Thus say Map is of type MultiWriteAccessible<T,3,I>, then Map[2] returns a reference to a MultiWriteAccessible<T,2,I>, Map[2][3] returns a reference to a MultiWriteAccessible<T,1,I> and Map[2][3][1] returns a reference to a T.

Because only references are returned, you can write to MultiWriteAccessibles, e.g.: Map[2][3][1] = 5.

You can also access the values by using InputIterator first, const InputIterator last) const at .

Definition at line 235 of file MultiAccessible.hpp.


Member Typedef Documentation

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
typedef I wns::container::MultiWriteAccessible< T, N, I >::IndexType

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
typedef MultiWriteAccessible<ValueType, N-1, IndexType>& wns::container::MultiWriteAccessible< T, N, I >::Reference

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
typedef MultiAccessibleDefs::SizeType wns::container::MultiWriteAccessible< T, N, I >::SizeType

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
typedef T wns::container::MultiWriteAccessible< T, N, I >::ValueType


Constructor & Destructor Documentation

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
virtual wns::container::MultiWriteAccessible< T, N, I >::~MultiWriteAccessible (  )  [inline, virtual]

Definition at line 262 of file MultiAccessible.hpp.


Member Function Documentation

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
template<class InputIterator>
ValueType& wns::container::MultiWriteAccessible< T, N, I >::at ( const InputIterator &  first,
const InputIterator &  last 
) [inline]

Parameters:
first (in) InputIterator pointing to the first index.
last (in) InputIterator pointing past the last index.
Returns:
Reference to the element specified by first and last.
http://www.sgi.com/tech/stl/InputIterator.html

Get a reference to the element specified by the indices from *first up to but not including *last. So you can access the values with e.g. every STL container and even C arrays.

The distance from first to last must be N.

Definition at line 289 of file MultiAccessible.hpp.

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
virtual SizeType wns::container::MultiWriteAccessible< T, N, I >::dimSize ( const SizeType dim  )  const [pure virtual]

Parameters:
dim (in) The dimension to get the size for.
Returns:
Size of dim.

Implemented in wns::container::Matrix< T, N, R >, wns::container::wns::container::Matrix< T, 1, R >, wns::container::MultiReadWriteAccessible< T, N, R, I >, wns::container::Matrix< wifimac::pathselection::Metric, 2 >, wns::container::Matrix< rise::scenario::fastfading::FastFading *, 2 >, wns::container::Matrix< wns::distribution::Distribution *, 2 >, wns::container::Matrix< rise::scenario::pathloss::Pathloss *, 2 >, wns::container::Matrix< t, dims, t >, wns::container::Matrix< int, 2 >, wns::container::Matrix< rise::scenario::shadowing::Shadowing *, 2 >, wns::container::MultiReadWriteAccessible< const rise::scenario::shadowing::Shadowing *, N, rise::scenario::shadowing::Shadowing *& >, wns::container::MultiReadWriteAccessible< t, N, t >, wns::container::MultiReadWriteAccessible< T, N, R >, wns::container::MultiReadWriteAccessible< const rise::scenario::pathloss::Pathloss *, N, rise::scenario::pathloss::Pathloss *& >, wns::container::MultiReadWriteAccessible< T, 1, R >, wns::container::MultiReadWriteAccessible< const wns::distribution::Distribution *, N, wns::distribution::Distribution *& >, wns::container::MultiReadWriteAccessible< const int, N, int & >, wns::container::MultiReadWriteAccessible< const wifimac::pathselection::Metric, N, wifimac::pathselection::Metric & >, and wns::container::MultiReadWriteAccessible< const rise::scenario::fastfading::FastFading *, N, rise::scenario::fastfading::FastFading *& >.

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
virtual Reference wns::container::MultiWriteAccessible< T, N, I >::operator[] ( const IndexType index  )  [pure virtual]

Returns a Reference to the hyperplane specified by the index.

template<typename T, MultiAccessibleDefs::SizeType N, typename I = MultiAccessibleDefs::SizeType>
virtual SizeType wns::container::MultiWriteAccessible< T, N, I >::size (  )  const [inline, virtual]


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

Generated on Sat May 26 03:32:52 2012 for openWNS by  doxygen 1.5.5