00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include "dbNodes.h"
00029
00030
00031 dbNodes::dbNodes(): numNodes(0), curNode(0), maxList(500) {
00032
00033 mpids = new int[maxList];
00034
00035 }
00036
00038 void
00039 dbNodes::deleteLists() {
00040
00041 if(mpids){
00042 delete [] mpids;
00043 mpids = 0;
00044 }
00045
00046 nodeVec::iterator itr;
00047
00048 do {
00049 for(itr = mnodes.begin(); itr!=mnodes.end(); ++itr){
00050 mnodes.erase(itr);
00051 break;
00052 }
00053 } while (mnodes.begin() != mnodes.end());
00054
00055 }
00057
00058 int
00059 dbNodes::addNode(StDbNode* node, int parentID){
00060
00061 mnodes.push_back(node);
00062 if(numNodes==maxList) extendParentList();
00063 mpids[numNodes]=parentID;
00064 numNodes++;
00065
00066 return numNodes-1;
00067 }
00068
00070
00071 StDbNode*
00072 dbNodes::getNode(int index){
00073
00074 StDbNode* node=0;
00075 if(index>-1 && index<numNodes)return mnodes[index];
00076 return node;
00077
00078 }
00079
00080
00082
00083 int
00084 dbNodes::getParentID(int index){
00085
00086 if(index>-1 && index<numNodes)return mpids[index];
00087 return 0;
00088 }
00089
00091
00092 StDbNode*
00093 dbNodes::getParent(int index){
00094
00095 StDbNode* node=0;
00096 if(index>-1 && index<numNodes)return getNode(mpids[index]);
00097 return node;
00098
00099 }
00100
00102
00103 StDbNode*
00104 dbNodes::next(){
00105
00106 StDbNode* node=getNode(curNode);
00107 curNode++;
00108 return node;
00109
00110 }
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125