#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). |
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.
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.
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] |
DOUBLE* buffer2D::operator[] | ( | INT | idx | ) | [inline] |
DOUBLE** buffer2D::m_buffer [protected] |
INT buffer2D::m_Nelem [protected] |
INT buffer2D::m_Ndim [protected] |
INT buffer2D::m_head [protected] |
INT buffer2D::m_tail [protected] |