filters

tablenames.cpp
1#include <qpro/common.h>
2
3#include <string.h>
4
5#include "qpro/tablenames.h"
6
7
8// ------------------------------------------------------------------
9
10QpTableNames::QpTableNames()
11{
12 for( int lIdx=0; lIdx<cNameCnt; ++lIdx )
13 {
14 cName[lIdx] = 0;
15 }
16}
17
18QpTableNames::~QpTableNames()
19{
20 for( int lIdx=0; lIdx<cNameCnt; ++lIdx )
21 {
22 delete [] cName[lIdx];
23 cName[lIdx] = 0;
24 }
25}
26
27
28void
29QpTableNames::name(unsigned pIdx, const char* pName)
30{
31 if(pIdx < cNameCnt)
32 {
33 delete [] cName[pIdx];
34 cName[pIdx] = strcpy( new char[strlen(pName)+1], pName);
35 }
36}
37
38const char*
39QpTableNames::name(unsigned pIdx)
40{
41 char* lResult = 0;
42
43 if(pIdx < cNameCnt)
44 {
45 if( (lResult = cName[pIdx]) == 0 )
46 {
47 if( pIdx < 26 )
48 {
49 lResult = cName[pIdx] = new char[2];
50 lResult[0] = (char)('A' + pIdx);
51 lResult[1] = '\0';
52 }
53 else
54 {
55 lResult = cName[pIdx] = new char[2];
56 lResult[0] = (char)('A' -1 + pIdx / 26);
57 lResult[1] = (char)('A' + pIdx % 26);
58 lResult[2] = '\0';
59 }
60 }
61 }
62
63 return lResult;
64}
65
66
67int
68QpTableNames::allocated(unsigned pIdx)
69{
70 return (pIdx >= cNameCnt ? 0 : (cName[pIdx] != 0));
71}
72