1/* -*- c-basic-offset: 2 -*- */
2/*
3 Copyright(C) 2009-2016 Brazil
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License version 2.1 as published by the Free Software Foundation.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17*/
18
19#pragma once
20
21#include "grn.h"
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#define GRN_CACHE_MAX_KEY_SIZE GRN_HASH_MAX_KEY_SIZE_LARGE
28
29typedef struct {
30 uint32_t nentries;
31 uint32_t max_nentries;
32 uint32_t nfetches;
33 uint32_t nhits;
34} grn_cache_statistics;
35
36void grn_cache_init(void);
37grn_rc grn_cache_fetch(grn_ctx *ctx, grn_cache *cache,
38 const char *str, uint32_t str_size,
39 grn_obj *output);
40void grn_cache_update(grn_ctx *ctx, grn_cache *cache,
41 const char *str, uint32_t str_size, grn_obj *value);
42void grn_cache_expire(grn_cache *cache, int32_t size);
43void grn_cache_fin(void);
44void grn_cache_get_statistics(grn_ctx *ctx, grn_cache *cache,
45 grn_cache_statistics *statistics);
46
47#ifdef __cplusplus
48}
49#endif
50