xref: /memcached-1.4.29/items.h (revision 690a9a9d)
177dde9f9SPaul Lindner /* See items.c */
2bad6c614SDustin Sallings uint64_t get_cas_id(void);
3bad6c614SDustin Sallings 
477dde9f9SPaul Lindner /*@null@*/
5*690a9a9dSEiichi Tsukata item *do_item_alloc(char *key, const size_t nkey, const unsigned int flags, const rel_time_t exptime, const int nbytes);
677dde9f9SPaul Lindner void item_free(item *it);
710862f60SPaul Lindner bool item_size_ok(const size_t nkey, const int flags, const int nbytes);
877dde9f9SPaul Lindner 
9bab9acd1Sdormando int  do_item_link(item *it, const uint32_t hv);     /** may fail if transgresses limits */
10bab9acd1Sdormando void do_item_unlink(item *it, const uint32_t hv);
118fe5bf1fSdormando void do_item_unlink_nolock(item *it, const uint32_t hv);
1256b8339eSSteven Grimm void do_item_remove(item *it);
13516e7dc2SPaul Lindner void do_item_update(item *it);   /** update LRU time to current and reposition */
14f2a4e5b4Sdormando void do_item_update_nolock(item *it);
15bab9acd1Sdormando int  do_item_replace(item *it, item *new_it, const uint32_t hv);
1677dde9f9SPaul Lindner 
17004e2211Sdormando int item_is_flushed(item *it);
18004e2211Sdormando 
1977dde9f9SPaul Lindner /*@null@*/
209bce42f2Sdormando char *item_cachedump(const unsigned int slabs_clsid, const unsigned int limit, unsigned int *bytes);
219bce42f2Sdormando void item_stats(ADD_STAT add_stats, void *c);
229bce42f2Sdormando void item_stats_totals(ADD_STAT add_stats, void *c);
2377dde9f9SPaul Lindner /*@null@*/
249bce42f2Sdormando void item_stats_sizes(ADD_STAT add_stats, void *c);
258d82383fSdormando void item_stats_sizes_init(void);
26ae6f4267Sdormando void item_stats_sizes_enable(ADD_STAT add_stats, void *c);
27ae6f4267Sdormando void item_stats_sizes_disable(ADD_STAT add_stats, void *c);
288d82383fSdormando void item_stats_sizes_add(item *it);
298d82383fSdormando void item_stats_sizes_remove(item *it);
308d82383fSdormando bool item_stats_sizes_status(void);
3156b8339eSSteven Grimm 
326895d23eSsergiocarlos item *do_item_get(const char *key, const size_t nkey, const uint32_t hv, conn *c);
336895d23eSsergiocarlos item *do_item_touch(const char *key, const size_t nkey, uint32_t exptime, const uint32_t hv, conn *c);
3453180103STrond Norbye void item_stats_reset(void);
359bce42f2Sdormando extern pthread_mutex_t lru_locks[POWER_LARGEST];
360d1f505cSdormando 
376be2b6c0Sdormando enum crawler_result_type {
38e708513aSdormando     CRAWLER_OK=0, CRAWLER_RUNNING, CRAWLER_BADCLASS, CRAWLER_NOTSTARTED
396be2b6c0Sdormando };
406be2b6c0Sdormando 
41fb269897Sdormando int start_lru_maintainer_thread(void);
42fb269897Sdormando int stop_lru_maintainer_thread(void);
43fb269897Sdormando int init_lru_maintainer(void);
44fb269897Sdormando void lru_maintainer_pause(void);
45fb269897Sdormando void lru_maintainer_resume(void);
46fb269897Sdormando 
470d1f505cSdormando int start_item_crawler_thread(void);
480d1f505cSdormando int stop_item_crawler_thread(void);
496be2b6c0Sdormando int init_lru_crawler(void);
50e8711e1bSdormando enum crawler_result_type lru_crawler_crawl(char *slabs);
516af7aa0bSdormando void lru_crawler_pause(void);
526af7aa0bSdormando void lru_crawler_resume(void);
53