MCPcopy Create free account
hub / github.com/couchbase/fleece / writeKeyTree

Method writeKeyTree

Experimental/KeyTree.cc:91–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89 }
90
91 void writeKeyTree(size_t begin, size_t end)
92 {
93 size_t mid = (begin + end) / 2;
94 // Write middle string, with length prefix:
95 slice str = _strings[mid];
96 writeVarInt(str.size);
97 write(str);
98
99 if (end - begin > 1) {
100 if (mid+1 < end) {
101 size_t leftSize = _sizes[(begin + mid) / 2];
102 writeVarInt(leftSize); // Write right subtree offset
103 writeKeyTree(begin, mid); // Write left subtree
104 writeKeyTree(mid+1, end); // Write right subtree
105 } else {
106 writeByte(0); // No right subtree (offset 0)
107 writeKeyTree(begin, mid); // Write left subtree
108 }
109 }
110 }
111
112 inline void writeByte(uint8_t byte) {
113 *_out++ = byte;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected