MCPcopy Create free account
hub / github.com/bloomberg/pystack / put

Method put

src/pystack/_pystack/mem.cpp:163–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

161, d_size(0){};
162
163void
164LRUCache::put(uintptr_t key, std::vector<char>&& value)
165{
166 size_t value_size = value.size();
167
168 if (!can_fit(value_size)) {
169 return;
170 }
171
172 auto it = d_cache.find(key);
173
174 if (it != d_cache.end()) {
175 d_cache_list.erase(it->second.it);
176 d_cache.erase(it);
177 }
178
179 while (d_size + value_size > d_cache_capacity) {
180 d_cache.erase(d_cache_list.back().key);
181 d_size -= d_cache_list.back().size;
182 d_cache_list.pop_back();
183 }
184
185 d_cache_list.push_front(LRUCache::ListNode{key, value_size});
186 d_cache[key] = LRUCache::CacheValue{std::move(value), d_cache_list.begin()};
187 d_size += value_size;
188}
189
190const std::vector<char>&
191LRUCache::get(uintptr_t key)

Callers 1

copyMemoryFromProcessMethod · 0.80

Calls 1

sizeMethod · 0.80

Tested by

no test coverage detected