// File name: $Workfile: pqbytearray.cpp $ // Last modified: $Modtime: 9/21/00 8:51a $ // Last modified by: $Author: Bill $ // // VCS archive path: $Archive: /Hank/DMM/FirmWare/Level3/ObDatMgr/pqbytearray.cpp $ // VCS revision: $Revision: 7 $ #include "PQDIF_classes.h" CPQByteArray::CPQByteArray() { m_data = NULL; m_size = 0; m_max = 0; m_growBy = 64; } CPQByteArray::~CPQByteArray() { if( m_data ) { free( m_data ); } } bool CPQByteArray::SetSize( int NewSize, int GrowBy ) { if( GrowBy > 0 ) m_growBy = GrowBy; // Grow? if( NewSize > m_max ) { int max = (( NewSize/m_growBy ) + 1)*m_growBy; BYTE * data = (BYTE *) realloc( (void *) m_data, max ); if( data != NULL || max == 0 ) { m_data = data; m_size = NewSize; m_max = max; } } else { m_size = NewSize; } return ( m_size == NewSize ); } int CPQByteArray::Add( BYTE value ) { int pos = m_size; if( SetSize( m_size + 1 ) ) { m_data[ pos ] = value; return pos; } else { return -1; } } int CPQByteArray::Append( BYTE * values, int count ) { int pos = m_size; if( SetSize( m_size + count, m_growBy ) ) { memcpy( m_data + pos, values, count ); return pos; } else { return -1; } }