Subversion
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Enumerations | Functions
svn_hash.h File Reference

Dumping and reading hash tables to/from files. More...

#include <apr.h>
#include <apr_pools.h>
#include <apr_hash.h>
#include <apr_tables.h>
#include <apr_file_io.h>
#include "svn_types.h"
#include "svn_io.h"

Go to the source code of this file.

Macros

#define SVN_KEYLINE_MAXLEN   100
 The longest the "K <number>" line can be in one of our hashdump files.
 
#define SVN_HASH_TERMINATOR   "END"
 The conventional terminator for hash dumps.
 
#define svn_hash_gets(ht, key)   apr_hash_get(ht, key, APR_HASH_KEY_STRING)
 Shortcut for apr_hash_get() with a const char * key.
 
#define svn_hash_sets(ht, key, val)   apr_hash_set(ht, key, APR_HASH_KEY_STRING, val)
 Shortcut for apr_hash_set() with a const char * key.
 

Typedefs

typedef svn_error_t *(* svn_hash_diff_func_t )(const void *key, apr_ssize_t klen, enum svn_hash_diff_key_status status, void *baton)
 Function type for expressing a key's status between two hash tables.
 

Enumerations

enum  svn_hash_diff_key_status {
  svn_hash_diff_key_both,
  svn_hash_diff_key_a,
  svn_hash_diff_key_b
}
 Hash key status indicator for svn_hash_diff_func_t. More...
 

Functions

svn_error_tsvn_hash_read2 (apr_hash_t *hash, svn_stream_t *stream, const char *terminator, apr_pool_t *pool)
 Read a hash table from stream, storing the resultants names and values in hash.
 
svn_error_tsvn_hash_write2 (apr_hash_t *hash, svn_stream_t *stream, const char *terminator, apr_pool_t *pool)
 Dump hash to stream.
 
svn_error_tsvn_hash_read_incremental (apr_hash_t *hash, svn_stream_t *stream, const char *terminator, apr_pool_t *pool)
 Similar to svn_hash_read2(), but allows stream to contain deletion lines which remove entries from hash as well as adding to it.
 
svn_error_tsvn_hash_write_incremental (apr_hash_t *hash, apr_hash_t *oldhash, svn_stream_t *stream, const char *terminator, apr_pool_t *pool)
 Similar to svn_hash_write2(), but only writes out entries for keys which differ between hash and oldhash, and also writes out deletion lines for keys which are present in oldhash but not in hash.
 
svn_error_tsvn_hash_read (apr_hash_t *hash, apr_file_t *srcfile, apr_pool_t *pool)
 This function behaves like svn_hash_read2(), but it only works on an apr_file_t input, empty files are accepted, and the hash is expected to be terminated with a line containing "END" or "PROPS-END".
 
svn_error_tsvn_hash_write (apr_hash_t *hash, apr_file_t *destfile, apr_pool_t *pool)
 This function behaves like svn_hash_write2(), but it only works on an apr_file_t output, and the terminator is always "END".
 
svn_error_tsvn_hash_diff (apr_hash_t *hash_a, apr_hash_t *hash_b, svn_hash_diff_func_t diff_func, void *diff_func_baton, apr_pool_t *pool)
 Take the diff of two hashtables.
 
svn_error_tsvn_hash_keys (apr_array_header_t **array, apr_hash_t *hash, apr_pool_t *pool)
 Return the keys to hash in *array.
 
svn_error_tsvn_hash_from_cstring_keys (apr_hash_t **hash, const apr_array_header_t *keys, apr_pool_t *pool)
 Set *hash to a new hash whose keys come from the items in keys (an array of const char * items), and whose values are match their corresponding key.
 

Detailed Description

Dumping and reading hash tables to/from files.

Definition in file svn_hash.h.

Macro Definition Documentation

#define SVN_KEYLINE_MAXLEN   100

The longest the "K <number>" line can be in one of our hashdump files.

Definition at line 46 of file svn_hash.h.