]> mj.ucw.cz Git - libucw.git/blobdiff - lib/qache.h
XML: Fixed reporting of characters via the PULL interface.
[libucw.git] / lib / qache.h
index 5742103cff1410720bdeaeba02007cb125166f9d..5c242a45b460d7d8bab30c3c3f916203990c6c49 100644 (file)
@@ -8,7 +8,7 @@
 #define _UCW_QACHE_H
 
 struct qache_params {
-  byte *file_name;
+  char *file_name;
   uns block_size;                      /* Cache block size (a power of two) */
   uns cache_size;                      /* Size of the whole cache */
   uns max_entries;                     /* Maximum number of cached entries */
@@ -26,7 +26,7 @@ void qache_close(struct qache *q, uns retain_data);
 
 /* Insert new item to the cache with a given key and data. If pos_hint is non-zero, it serves
  * as a hint about the position of the entry (if it's known that an entry with the particular key
- * was located there a moment ago. Returns position of the new entry.
+ * was located there a moment ago). Returns position of the new entry.
  */
 uns qache_insert(struct qache *q, qache_key_t *key, uns pos_hint, void *data, uns size);
 
@@ -37,7 +37,13 @@ uns qache_insert(struct qache *q, qache_key_t *key, uns pos_hint, void *data, un
  * can be greater than the original value requested). The start indicates starting offset inside the
  * entry's data.
  */
-uns qache_lookup(struct qache *q, qache_key_t *key, uns pos_hint, void **datap, uns *sizep, uns start);
+uns qache_lookup(struct qache *q, qache_key_t *key, uns pos_hint, byte **datap, uns *sizep, uns start);
+
+/* Inspect data in the cache (but don't modify LRU nor anything else), given a position.
+ * If key is non-NULL, it's filled with the cache key. The rest works as in qache_lookup.
+ * Returns 0 if the entry is empty, ~0 for position out of range, entry number otherwise.
+ */
+uns qache_probe(struct qache *q, qache_key_t *key, uns pos, byte **datap, uns *sizep, uns start);
 
 /* Delete data from the cache, given a key and a position hint. */
 uns qache_delete(struct qache *q, qache_key_t *key, uns pos_hint);
@@ -45,4 +51,7 @@ uns qache_delete(struct qache *q, qache_key_t *key, uns pos_hint);
 /* Debugging dump (beware, doesn't lock the cache!) */
 void qache_debug(struct qache *q);
 
+/* Check consistency of the cache structure */
+void qache_audit(struct qache *q);
+
 #endif