filters
tablenames.cc00001 #include <qpro/common.h>
00002
00003 #include <string.h>
00004
00005 #include "qpro/tablenames.h"
00006
00007
00008
00009
00010 QpTableNames::QpTableNames()
00011 {
00012 for( int lIdx=0; lIdx<cNameCnt; ++lIdx )
00013 {
00014 cName[lIdx] = 0;
00015 }
00016 }
00017
00018 QpTableNames::~QpTableNames()
00019 {
00020 for( int lIdx=0; lIdx<cNameCnt; ++lIdx )
00021 {
00022 delete [] cName[lIdx];
00023 cName[lIdx] = 0;
00024 }
00025 }
00026
00027
00028 void
00029 QpTableNames::name(unsigned pIdx, const char* pName)
00030 {
00031 if(pIdx < cNameCnt)
00032 {
00033 delete [] cName[pIdx];
00034 cName[pIdx] = strcpy( new char[strlen(pName)+1], pName);
00035 }
00036 }
00037
00038 const char*
00039 QpTableNames::name(unsigned pIdx)
00040 {
00041 char* lResult = 0;
00042
00043 if(pIdx < cNameCnt)
00044 {
00045 if( (lResult = cName[pIdx]) == 0 )
00046 {
00047 if( pIdx < 26 )
00048 {
00049 lResult = cName[pIdx] = new char[2];
00050 lResult[0] = (char)('A' + pIdx);
00051 lResult[1] = '\0';
00052 }
00053 else
00054 {
00055 lResult = cName[pIdx] = new char[2];
00056 lResult[0] = (char)('A' -1 + pIdx / 26);
00057 lResult[1] = (char)('A' + pIdx % 26);
00058 lResult[2] = '\0';
00059 }
00060 }
00061 }
00062
00063 return lResult;
00064 }
00065
00066
00067 int
00068 QpTableNames::allocated(unsigned pIdx)
00069 {
00070 return (pIdx >= cNameCnt ? 0 : (cName[pIdx] != 0));
00071 }
00072
|