File indexing completed on 2024-04-14 03:42:32

0001 #include <HtmRangeIterator.h>
0002 
0003 extern "C" {
0004 // uint64 cc_name2ID(const char *name);
0005 int cc_ID2name(char *name, uint64 id);
0006 }
0007 
0008 Key HtmRangeIterator::next()
0009 {
0010     Key key = this->nextval;
0011     getNext();
0012     return key;
0013 }
0014 
0015 void HtmRangeIterator::getNext()
0016 {
0017     if (currange[0] <= 0)
0018     {
0019         nextval = -1;
0020         return;
0021     }
0022     nextval++;
0023     if (nextval > currange[1])
0024     {
0025         range->getNext(&currange[0], &currange[1]);
0026         if (currange[0] <= 0)
0027         {
0028             nextval = -1;
0029             return;
0030         }
0031         nextval = currange[0];
0032     }
0033     return;
0034 }
0035 
0036 char *HtmRangeIterator::nextSymbolic(char *buffer)
0037 {
0038     Key key = this->next();
0039     if (key <= 0)
0040     {
0041         buffer[0] = '\0';
0042     }
0043     else
0044     {
0045         cc_ID2name(buffer, key);
0046     }
0047     return buffer;
0048 }
0049 bool HtmRangeIterator::hasNext()
0050 {
0051     return (nextval > 0);
0052 }
0053 
0054 // HtmRangeIterator::