1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00

Add static header for gencache.

This commit is contained in:
Jelmer Vernooij 2008-02-16 15:40:42 +01:00
parent bc0fab89e3
commit 9a0f6a0012
3 changed files with 95 additions and 6 deletions

1
.gitignore vendored
View File

@ -1,7 +1,6 @@
source/pidl/Makefile
source/mkconfig.mk
source/test-results
source/lib/gencache/gencache.h
source/lib/ldb/bin
*.pc
autom4te.cache

View File

@ -18,15 +18,11 @@ include tdr/config.mk
include dbwrap/config.mk
include crypto/config.mk
################################################
# Start SUBSYSTEM LIBCOMPRESSION
[SUBSYSTEM::LIBCOMPRESSION]
OBJ_FILES = compression/mszip.o
# End SUBSYSTEM LIBCOMPRESION
################################################
[SUBSYSTEM::GENCACHE]
PRIVATE_PROTO_HEADER = gencache/gencache.h
PUBLIC_HEADERS = gencache/gencache.h
OBJ_FILES = gencache/gencache.o
PRIVATE_DEPENDENCIES = TDB_WRAP

View File

@ -0,0 +1,94 @@
#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__ */