mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
ec7c03a80f
(This used to be commit 9a0f6a0012
)
95 lines
3.0 KiB
C
95 lines
3.0 KiB
C
#ifndef __LIB_GENCACHE_GENCACHE_H__
|
|
#define __LIB_GENCACHE_GENCACHE_H__
|
|
|
|
/**
|
|
* Cache initialisation function. Opens cache tdb file or creates
|
|
* it if does not exist.
|
|
*
|
|
* @return true on successful initialisation of the cache or
|
|
* false on failure
|
|
**/
|
|
bool gencache_init(struct loadparm_context *lp_ctx);
|
|
|
|
/**
|
|
* Cache shutdown function. Closes opened cache tdb file.
|
|
*
|
|
* @return true on successful closing the cache or
|
|
* false on failure during cache shutdown
|
|
**/
|
|
bool gencache_shutdown(void);
|
|
|
|
/**
|
|
* Set an entry in the cache file. If there's no such
|
|
* one, then add it.
|
|
*
|
|
* @param keystr string that represents a key of this entry
|
|
* @param value text representation value being cached
|
|
* @param timeout time when the value is expired
|
|
*
|
|
* @retval true when entry is successfuly stored
|
|
* @retval false on failure
|
|
**/
|
|
bool gencache_set(const char *keystr, const char *value, time_t timeout);
|
|
|
|
/**
|
|
* Set existing entry to the cache file.
|
|
*
|
|
* @param keystr string that represents a key of this entry
|
|
* @param valstr text representation value being cached
|
|
* @param timeout time when the value is expired
|
|
*
|
|
* @retval true when entry is successfuly set
|
|
* @retval false on failure
|
|
**/
|
|
bool gencache_set_only(const char *keystr, const char *valstr, time_t timeout);
|
|
|
|
/**
|
|
* Delete one entry from the cache file.
|
|
*
|
|
* @param keystr string that represents a key of this entry
|
|
*
|
|
* @retval true upon successful deletion
|
|
* @retval false in case of failure
|
|
**/
|
|
bool gencache_del(const char *keystr);
|
|
|
|
/**
|
|
* Get existing entry from the cache file.
|
|
*
|
|
* @param keystr string that represents a key of this entry
|
|
* @param valstr buffer that is allocated and filled with the entry value
|
|
* buffer's disposing must be done outside
|
|
* @param timeout pointer to a time_t that is filled with entry's
|
|
* timeout
|
|
*
|
|
* @retval true when entry is successfuly fetched
|
|
* @retval false for failure
|
|
**/
|
|
bool gencache_get(const char *keystr, char **valstr, time_t *timeout);
|
|
|
|
/**
|
|
* Iterate through all entries which key matches to specified pattern
|
|
*
|
|
* @param fn pointer to the function that will be supplied with each single
|
|
* matching cache entry (key, value and timeout) as an arguments
|
|
* @param data void pointer to an arbitrary data that is passed directly to the fn
|
|
* function on each call
|
|
* @param keystr_pattern pattern the existing entries' keys are matched to
|
|
*
|
|
**/
|
|
void gencache_iterate(void (*fn)(const char* key, const char *value, time_t timeout, void* dptr),
|
|
void* data, const char* keystr_pattern);
|
|
|
|
/********************************************************************
|
|
lock a key
|
|
********************************************************************/
|
|
int gencache_lock_entry( const char *key );
|
|
|
|
/********************************************************************
|
|
unlock a key
|
|
********************************************************************/
|
|
void gencache_unlock_entry( const char *key );
|
|
|
|
#endif /* __LIB_GENCACHE_GENCACHE_H__ */
|
|
|