45 if (min_str.
ptr() != NULL) {
53 if (max_str.
ptr() != NULL) {
60 open(trie, min_id, max_id, offset, limit, flags);
69 flags = fix_flags(flags);
71 IdCursor new_cursor(trie, offset, limit, flags);
72 new_cursor.init(min_id, max_id);
73 new_cursor.swap(
this);
78 new_cursor.swap(
this);
82 if (count_ >= limit_) {
85 while (cur_ != end_) {
122 if (cursor_order == 0) {
146 if ((max_id < min_id) || ((max_id - min_id) < offset_)) {
153 for (
UInt32 i = 0; (
i < offset_) && (cur_ != end_); ++
i) {
154 while (cur_ != end_) {
163 for (
UInt32 i = 0; (
i < offset_) && (cur_ != end_); ++
i) {
164 while (cur_ != end_) {
173 void IdCursor::swap(IdCursor *cursor) {
174 std::swap(trie_, cursor->trie_);
175 std::swap(offset_, cursor->offset_);
176 std::swap(limit_, cursor->limit_);
177 std::swap(flags_, cursor->flags_);
178 std::swap(cur_, cursor->cur_);
179 std::swap(end_, cursor->end_);
180 std::swap(count_, cursor->count_);