MCPcopy Create free account
hub / github.com/apache/trafficserver / get

Method get

src/iocore/cache/RamCacheLRU.cc:139–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

137}
138
139int
140RamCacheLRU::get(CryptoHash *key, Ptr<IOBufferData> *ret_data, uint64_t auxkey)
141{
142 if (!max_bytes) {
143 return 0;
144 }
145 uint32_t i = key->slice32(3) % nbuckets;
146 RamCacheLRUEntry *e = bucket[i].head;
147 while (e) {
148 if (e->key == *key && e->auxkey == auxkey) {
149 lru.remove(e);
150 lru.enqueue(e);
151 (*ret_data) = e->data;
152 DDbg(dbg_ctl_ram_cache, "get %X %" PRIu64 " HIT", key->slice32(3), auxkey);
153 ts::Metrics::Counter::increment(cache_rsb.ram_cache_hits);
154 ts::Metrics::Counter::increment(stripe->cache_vol->vol_rsb.ram_cache_hits);
155
156 return 1;
157 }
158 e = e->hash_link.next;
159 }
160 DDbg(dbg_ctl_ram_cache, "get %X %" PRIu64 " MISS", key->slice32(3), auxkey);
161 ts::Metrics::Counter::increment(cache_rsb.ram_cache_misses);
162 ts::Metrics::Counter::increment(stripe->cache_vol->vol_rsb.ram_cache_misses);
163
164 return 0;
165}
166
167RamCacheLRUEntry *
168RamCacheLRU::remove(RamCacheLRUEntry *e)

Callers

nothing calls this directly

Calls 3

incrementFunction · 0.85
removeMethod · 0.45
enqueueMethod · 0.45

Tested by

no test coverage detected