MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / shiftLeft

Method shiftLeft

source/test/btree_test.cpp:144–163  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

142
143template <typename Key, typename Pointer>
144void SimpleBTreeIndex<Key, Pointer>::shiftLeft(Key const& mid, SimpleBTreeIndex& right, size_t count) {
145 count = std::min(right.pointerCount(), count);
146
147 if (count == 0)
148 return;
149
150 pointers.append(Element{mid, *right.beginPointer});
151
152 typename ElementList::iterator s = right.pointers.begin();
153 std::advance(s, count - 1);
154 pointers.insert(pointers.end(), right.pointers.begin(), s);
155
156 right.pointers.erase(right.pointers.begin(), s);
157 if (right.pointers.size() != 0) {
158 right.beginPointer = right.pointers.at(0).pointer;
159 right.pointers.eraseAt(0);
160 } else {
161 right.beginPointer.reset();
162 }
163}
164
165template <typename Key, typename Pointer>
166void SimpleBTreeIndex<Key, Pointer>::shiftRight(Key const& mid, SimpleBTreeIndex& left, size_t count) {

Callers 2

leafShiftMethod · 0.45
indexShiftMethod · 0.45

Calls 11

eraseAtMethod · 0.80
pointerCountMethod · 0.45
appendMethod · 0.45
beginMethod · 0.45
insertMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45
sizeMethod · 0.45
atMethod · 0.45
resetMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected