100 memcpy((
void*)
m_pBuffer,(
const void*) pbuf, size );
124 m_pRetreivedBucket = NULL;
125 m_pFirstBucketToGo = NULL;
126 m_pLastBucketToGo = NULL;
127 m_pFirstEmptyBucket = m_pLastEmptyBucket = NULL;
133 while(RetreiveBucket()!=NULL) {
134 DestroyRetreivedBucket();
140 return( m_nBuckets == 0 );
145 return( m_nBuckets == m_lMaxBuckets );
152 if((pBucket==NULL) ||(m_nBuckets == m_lMaxBuckets) )
157 if( m_nBuckets == 0) {
158 m_pFirstBucketToGo = pBucket;
159 m_pLastBucketToGo = pBucket;
161 }
else if (m_pLastBucketToGo) {
163 m_pLastBucketToGo = pBucket;
176 pB = GetEmptyBucket();
180 pB->
Copy( size, pbuf );
192 return AddBucket(pB);
212 retreived = m_pFirstBucketToGo;
215 if( m_nBuckets == 0 ) {
217 }
else if( m_nBuckets == 1 ) {
218 m_pFirstBucketToGo = NULL;
219 m_pLastBucketToGo = NULL;
220 }
else if( m_nBuckets > 1 ) {
236 m_pRetreivedBucket = retreived;
243 return m_pRetreivedBucket;
247 if (m_pRetreivedBucket) {
248 m_pRetreivedBucket->EmptyBucket();
249 delete m_pRetreivedBucket;
250 m_pRetreivedBucket = NULL;
252 if (m_pRetreivedBucket==NULL) {
return true; }
253 else {
return false; }
261 retreived = m_pFirstBucketToGo;
bool DestroyRetreivedBucket()
moBucket * GetActualBucket()
bool Unlock()
Libera el acceso al buffer interno.
bool Lock()
Paraliza el acceso al buffer interno.
MOubyte * m_pBuffer
puntero al espacio en memoria
MOlong m_lBufferSize
tamaño del espacio en memoria (buffer)
moBucket * GetEmptyBucket()
void Copy(MOlong size, MOubyte *pbuf)
Copia al espacio de memoria los valores de otro espacio de memoria.
void EmptyBucket()
Libera el espacio de memoria.
bool m_bEmpty
indicador si el buffer está vacío o lleno (con datos)
moBucket * m_pAttachedBucket
moBucket enlazado
Espacio en memoria para compartir datos entre objetos.
MOlong GetSize()
Devuelve el tamaño en bytes asignado por el buffer.
MOubyte * GetBuffer()
Devuelve el puntero al buffer de datos.
moBucket * RetreiveBucket()
void AttachBucket(moBucket *pbucket)
Enlaza un moBucket.
void SetBuffer(MOlong size, MOubyte *pbuf)
Crea un espacio de memoria y asigna los valores desde un puntero a otro espacio de memoria...
moBucket * RetreivedBucket()
moBucket * GetAttachedBucket()
Devuelve el moBucket enlazado a este.
moLock m_Lock
semáforo para el acceso asincrónico
bool AddBucket(moBucket *pBucket)
void BuildBucket(MOlong size, int setvalue)
Habilita el buffer en memoria con el valor prefijado.