File indexing completed on 2024-04-21 03:44:00

0001 #ifndef _HTMHANGEITERATOR_H_
0002 #define _HTMHANGEITERATOR_H_
0003 
0004 #include <HtmRange.h>
0005 
0006 class HtmRangeIterator
0007 {
0008   public:
0009     Key next();
0010     char *nextSymbolic(char *buffer); /* User responsible for managing it */
0011     bool hasNext();
0012     HtmRangeIterator(HtmRange *ran)
0013     {
0014         range = ran;
0015         range->reset();
0016         range->getNext(&currange[0], &currange[1]);
0017         nextval = currange[0] - 1;
0018         getNext();
0019     }
0020 
0021   protected:
0022     HtmRange *range;
0023     void getNext();
0024 
0025   private:
0026     Key nextval;
0027     Key currange[2] { 0 }; /* Low and High */
0028     HtmRangeIterator() : range(nullptr), nextval(-1) {}
0029 };
0030 
0031 #endif