Subversion
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. More...
 
#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. More...
 
#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. More...
 

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. More...
 
svn_error_tsvn_hash_write2 (apr_hash_t *hash, svn_stream_t *stream, const char *terminator, apr_pool_t *pool)
 Dump hash to stream. More...
 
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. More...
 
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. More...
 
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". More...
 
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". More...
 
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. More...
 
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. More...
 
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. More...
 

Detailed Description

Dumping and reading hash tables to/from files.

@if copyrights

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations

under the License.

Definition in file svn_hash.h.