# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

Public Member Functions | Private Member Functions | Private Attributes | List of all members
dirac::OneDArray< T > Class Template Reference

A template class for one-dimensional arrays. More...

`#include <arrays.h>`

Inheritance diagram for dirac::OneDArray< T >:
[legend]

## Public Member Functions
| OneDArray ()
| Default constructor. More...
| OneDArray (const int len)
| 'Length' constructor. More...
| OneDArray (const Range &r)
| Range constructor. More...
| ~OneDArray ()
| Destructor. More...
| OneDArray (const OneDArray< T > &cpy)
| Copy constructor. More...
OneDArray< T > & | operator= (const OneDArray< T > &rhs)
| Assignment=. More...
void | Resize (int l)
| Resize the array, throwing away the current data. More...
T & | operator[] (const int pos)
| Element access. More...
const T & | operator[] (const int pos) const
| Element access. More...
int | Length () const
| Returns the length of the array. More...
int | First () const
| Returns the index of the first element. More...
int | Last () const
| Returns the index of the last element. More...

## Private Member Functions
void | Init (const int len)
void | Init (const Range &r)
void | FreePtr ()

## Private Attributes
int | m_first
int | m_last
int | m_length
T * | m_ptr

## Detailed Description

template<class T>
class dirac::OneDArray< T >

A template class for one-D arrays. Can be used wherever built-in arrays are used, and eliminates the need for explicit memory (de-)allocation. Also supports arrays not based at zero.

## Constructor & Destructor Documentation

## ◆ OneDArray() [1/4]

template<class T >

dirac::OneDArray< T >::OneDArray

Default constructor produces an empty array.

## ◆ OneDArray() [2/4]

template<class T >

dirac::OneDArray< T >::OneDArray | ( | const int | len | ) |

Length constructor produces a zero-based array.

## ◆ OneDArray() [3/4]

template<class T >

dirac::OneDArray< T >::OneDArray | ( | const Range & | r | ) |

Range constructor produces an array with values indexed within the range parameters.

Parameters

  r | a range of indexing values.

## ◆ ~OneDArray()

template<class T >

dirac::OneDArray< T >::~OneDArray | ( |  | ) |
| inline

Destructor frees the data allocated in the constructors.

References dirac::OneDArray< T >::FreePtr().

## ◆ OneDArray() [4/4]

template<class T >

dirac::OneDArray< T >::OneDArray | ( | const OneDArray< T > & | cpy | ) |

Copy constructor copies both data and metadata.

References dirac::OneDArray< T >::m_first, dirac::OneDArray< T >::m_last, and dirac::OneDArray< T >::m_ptr.

## Member Function Documentation

## ◆ First()

template<class T >

int dirac::OneDArray< T >::First | ( |  | ) | const
| inline

References dirac::OneDArray< T >::m_first.

## ◆ FreePtr()

template<class T >

void dirac::OneDArray< T >::FreePtr
| private

Referenced by dirac::OneDArray< T >::~OneDArray().

## ◆ Init() [1/2]

template<class T >

void dirac::OneDArray< T >::Init | ( | const int | len | ) |
| private

## ◆ Init() [2/2]

template<class T >

void dirac::OneDArray< T >::Init | ( | const Range & | r | ) |
| private

References dirac::Range::First(), and dirac::Range::Last().

## ◆ Last()

template<class T >

int dirac::OneDArray< T >::Last | ( |  | ) | const
| inline

References dirac::OneDArray< T >::m_last.

## ◆ Length()

template<class T >

int dirac::OneDArray< T >::Length | ( |  | ) | const
| inline

References dirac::OneDArray< T >::m_length.

## ◆ operator=()

template<class T >

OneDArray< T > & dirac::OneDArray< T >::operator= | ( | const OneDArray< T > & | rhs | ) |

Assignment= assigns both data and metadata.

References dirac::OneDArray< T >::m_first, dirac::OneDArray< T >::m_last, dirac::OneDArray< T >::m_length, and dirac::OneDArray< T >::m_ptr.

## ◆ operator[]() [1/2]

template<class T >

T & dirac::OneDArray< T >::operator[] | ( | const int | pos | ) |
| inline

References dirac::OneDArray< T >::m_first, and dirac::OneDArray< T >::m_ptr.

## ◆ operator[]() [2/2]

template<class T >

const T & dirac::OneDArray< T >::operator[] | ( | const int | pos | ) | const
| inline

References dirac::OneDArray< T >::m_first, and dirac::OneDArray< T >::m_ptr.

## ◆ Resize()

template<class T >

void dirac::OneDArray< T >::Resize | ( | int | l | ) |

## Member Data Documentation

## ◆ m_first

template<class T >

int dirac::OneDArray< T >::m_first
| private

Referenced by dirac::OneDArray< T >::First(), dirac::OneDArray< T >::OneDArray(), dirac::OneDArray< T >::operator=(), and dirac::OneDArray< T >::operator[]().

## ◆ m_last

template<class T >

int dirac::OneDArray< T >::m_last
| private

Referenced by dirac::OneDArray< T >::Last(), dirac::OneDArray< T >::OneDArray(), and dirac::OneDArray< T >::operator=().

## ◆ m_length

template<class T >

int dirac::OneDArray< T >::m_length
| private

Referenced by dirac::OneDArray< T >::Length(), and dirac::OneDArray< T >::operator=().

## ◆ m_ptr

template<class T >

T* dirac::OneDArray< T >::m_ptr
| private

Referenced by dirac::OneDArray< T >::OneDArray(), dirac::OneDArray< T >::operator=(), and dirac::OneDArray< T >::operator[]().

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

- arrays.h

© 2004 British Broadcasting Corporation. Dirac code licensed under the Mozilla Public License (MPL) Version 1.1.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.