Referencia de la Clase buffer2D

Clase para implementar un buffer 2D. Generalmente, un buffer de tramas parametrizadas. Más...

#include <cbuffer.h>


Métodos públicos

 buffer2D ()
 buffer2D (INT Nelem, INT Nfft)
 ~buffer2D ()
void Resize (INT Nelem, INT Nfft)
 Cambia el tamaño del buffer.
const DOUBLE * operator[] (INT idx) const
 Sobrecarga del operador [].
DOUBLE * operator[] (INT idx)
 Sobrecarga del operador [].
void Push (const DOUBLE *e)
 Añade un nuevo vector de parámetros al buffer.
INT Size () const
 Devuelve el tamaño del buffer.
INT Dim () const
 Devuelve la dimensión del buffer.
bool Empty () const
 Verdadero si el buffer está vacío.
const DOUBLE * Head () const
 Devuelve el elemento más viejo del buffer.
void Head (DOUBLE *h) const
 Devuelve el elemento más viejo del buffer.
const DOUBLE * Tail () const
 Devuelve el elemento más nuevo del buffer.
void Tail (DOUBLE *t) const
 Devuelve el elemento más viejo del buffer.

Métodos protegidos

void Advance ()
 Avanza el puntero de cola.

Atributos protegidos

DOUBLE ** m_buffer
 La memoria del buffer.
INT m_Nelem
 Tamaño del buffer.
INT m_Ndim
 Número de dimensiones.
INT m_head
 índice a cabeza (elemento más viejo).
INT m_tail
 índice a cola (elemento más nuevo).


Descripción detallada

Esta clase está poco definida, y es muy rígida. Define un array bidimensional donde una de las dimensiones es circular y la otra es fina. Se supone que la dimensión fija es el tamaño de los vectores de parámetros y la circular es el tiempo.

Un ejemplo sencillo del uso de esta clase:

        INT BufSize = 10;   //Tamaño del buffer. Dimensión circular
        INT fftsize;        //Tmaño de los vectores. Dimensión fija
        buffer2D fftbuf(BufSize, fftsize);
  
        //Llenamos el buffer con datos
        pDOUBLE fft;
        for (INT i = 0; i < BufSize; ++i)
        {
            fft = GetNewFft();
            fftbuf.Push(fft);
        }
  
        //Ahora trabajamos con el buffer
        //Se puede utilizar el operator[] de forma normal
        DoSomething(fftbuf);
  
        //Y podemos meter nuevos elementos.
        //Cuando el buffer se llene, el elemento más viejo se borra para
        //dar espacio al nuevo.
        fft = GetNewFft();
        fftbuf.Push(fft);

Definición en la línea 61 del archivo cbuffer.h.


Documentación del constructor y destructor

buffer2D::buffer2D (  )  [inline]

Definición en la línea 75 del archivo cbuffer.h.

buffer2D::buffer2D ( INT  Nelem,
INT  Nfft 
)

Definición en la línea 19 del archivo cbuffer.cpp.

buffer2D::~buffer2D (  ) 

Definición en la línea 27 del archivo cbuffer.cpp.


Documentación de las funciones miembro

void buffer2D::Resize ( INT  Nelem,
INT  Nfft 
)

Una llamada a esta función destruye todos los datos del buffer, por lo que hay que llamarla con cuidado. Además, ten en cuenta que destruye el buffer, pero no libera los arrays a los que apunta.

Sólo debería llamarse a esta función si se ha utilizado el constructor por defecto (que no reserva memoria) o si se ha tenido cuidado de liberar primero las memorias a las que apuntan los punteros

Definición en la línea 47 del archivo cbuffer.cpp.

const DOUBLE* buffer2D::operator[] ( INT  idx  )  const [inline]

Permite abstraerse de la naturaleza circular del buffer

Nota:
No comprueba si idx está dentro de los límites del buffer o no. Esto es coherente con el comportamiento de un array C estándar.

Definición en la línea 96 del archivo cbuffer.h.

DOUBLE* buffer2D::operator[] ( INT  idx  )  [inline]

Permite abstraerse de la naturaleza circular del buffer

Nota:
No comprueba si idx está dentro de los límites del buffer o no. Esto es coherente con el comportamiento de un array C estándar.

Definición en la línea 108 del archivo cbuffer.h.

void buffer2D::Push ( const DOUBLE *  e  )  [inline]

Definición en la línea 114 del archivo cbuffer.h.

INT buffer2D::Size (  )  const [inline]

Definición en la línea 126 del archivo cbuffer.h.

INT buffer2D::Dim (  )  const [inline]

Definición en la línea 132 del archivo cbuffer.h.

bool buffer2D::Empty (  )  const [inline]

Definición en la línea 138 del archivo cbuffer.h.

const DOUBLE* buffer2D::Head (  )  const [inline]

Definición en la línea 144 del archivo cbuffer.h.

void buffer2D::Head ( DOUBLE *  h  )  const [inline]

Definición en la línea 150 del archivo cbuffer.h.

const DOUBLE* buffer2D::Tail (  )  const [inline]

Definición en la línea 156 del archivo cbuffer.h.

void buffer2D::Tail ( DOUBLE *  t  )  const [inline]

Definición en la línea 162 del archivo cbuffer.h.

void buffer2D::Advance (  )  [inline, protected]

Definición en la línea 171 del archivo cbuffer.h.


Documentación de los campos

DOUBLE** buffer2D::m_buffer [protected]

Definición en la línea 64 del archivo cbuffer.h.

INT buffer2D::m_Nelem [protected]

Definición en la línea 65 del archivo cbuffer.h.

INT buffer2D::m_Ndim [protected]

Definición en la línea 66 del archivo cbuffer.h.

INT buffer2D::m_head [protected]

Definición en la línea 67 del archivo cbuffer.h.

INT buffer2D::m_tail [protected]

Definición en la línea 68 del archivo cbuffer.h.


La documentación para esta clase fue generada a partir de los siguientes ficheros:

Generado el Thu Mar 11 18:59:28 2010 para AhoLib por  doxygen 1.5.6