⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pqbytearray.cpp

📁 PQDIF软件包(SDK,Software Development Kit),它能转换、生成并且显示PQDIF文件.对于开发电力系统的数据输出非常有用。
💻 CPP
字号:
//  File name:          $Workfile: pqbytearray.cpp $
//  Last modified:      $Modtime: 7/27/98 11:41a $
//  Last modified by:   $Author: Rob $
//  
//  VCS archive path:   $Archive: /Hank/DMM/FirmWare/Level3/ObDatMgr/pqbytearray.cpp $
//  VCS revision:       $Revision: 3 $ 

#include "PQDIF_classes.h"


CPQByteArray::CPQByteArray()
{
    m_data = (BYTE *) malloc( 64 );
    m_size = 0;
    m_max = 64;
    m_growBy = 64;
}


CPQByteArray::~CPQByteArray()
{
    if( m_data )
    {
        free( m_data );
    }
}


int CPQByteArray::GetSize( void ) const
{
    return m_size;
}


void CPQByteArray::SetSize( int NewSize, int GrowBy )
{
    m_size = NewSize;
    if( GrowBy > 0 )
        m_growBy = GrowBy;

    //  Grow?
    if( NewSize > m_max )
    {
        m_max = NewSize + m_growBy;
        m_data = (BYTE *) realloc( (void *) m_data, m_max );
    }
}


BYTE CPQByteArray::GetAt( int idx ) const
{
    const   BYTE    bogus = 0;

    if( idx >=0 && idx < m_size )
    {
        return m_data[ idx ];
    }
    else
    {
        return bogus;
    }
}


void CPQByteArray::SetAt( int idx, BYTE value )
{
    if( idx >= 0 && idx < m_size )
    {
        m_data[ idx ] = value;
    }
}


BYTE& CPQByteArray::ElementAt( int idx )
{
    static  BYTE    bogus = 0;

    if( idx >= 0 && idx < m_size )
    {
        return m_data[ idx ];
    }
    else
    {
        return bogus;
    }
}


const BYTE * CPQByteArray::GetData( void ) const
{
    return m_data;
}


BYTE * CPQByteArray::GetData( void )
{
    return m_data;
}


int CPQByteArray::Add( BYTE value )
{
    int     pos = m_size;

    SetSize( m_size + 1, m_growBy );
    if( m_data )
    {
        m_data[ pos ] = value;
        return pos;
    }
    else
    {
        return -1;
    }
}


int CPQByteArray::Append( BYTE * values, int count )
{
    int     pos = m_size;

    SetSize( m_size + count, m_growBy );
    if( m_data )
    {
        memcpy( m_data + pos, values, count );
        return pos;
    }
    else
    {
        return -1;
    }
}


BYTE CPQByteArray::operator[] ( int idx ) const
{
    return GetAt( idx );
}


BYTE& CPQByteArray::operator[] ( int idx )
{
    return ElementAt( idx );
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -