Main Page | Modules | Data Structures | File List | Data Fields | Globals

svn_sorts.h File Reference

all sorts of sorts. More...

#include <apr_pools.h>
#include <apr_tables.h>
#include <apr_hash.h>

Go to the source code of this file.

Data Structures

struct  svn_sort__item_t
 This structure is used to hold a key/value from a hash table. More...


Typedefs

typedef svn_sort__item_t svn_sort__item_t
 This structure is used to hold a key/value from a hash table.


Functions

int svn_sort_compare_items_as_paths (const svn_sort__item_t *a, const svn_sort__item_t *b)
 Compare two svn_sort__item_t's, returning an integer greater than, equal to, or less than 0, according as a is greater than, equal to, or less than b.

int svn_sort_compare_revisions (const void *a, const void *b)
 Compare two svn_revnum_t's, returning an integer greater than, equal to, or less than 0, according as b is greater than, equal to, or less than a.

apr_array_header_t * svn_sort__hash (apr_hash_t *ht, int(*comparison_func)(const svn_sort__item_t *, const svn_sort__item_t *), apr_pool_t *pool)
 Sort ht according to its keys, return an apr_array_header_t containing svn_sort__item_t structures holding those keys and values (i.e.


Detailed Description

all sorts of sorts.

Definition in file svn_sorts.h.


Typedef Documentation

typedef struct svn_sort__item_t svn_sort__item_t
 

This structure is used to hold a key/value from a hash table.

NOTE: Private. For use by Subversion's own code only. See issue #1644.


Function Documentation

apr_array_header_t* svn_sort__hash apr_hash_t *  ht,
int(*  comparison_func)(const svn_sort__item_t *, const svn_sort__item_t *),
apr_pool_t *  pool
 

Sort ht according to its keys, return an apr_array_header_t containing svn_sort__item_t structures holding those keys and values (i.e.

for each svn_sort__item_t item in the returned array, item->key and item->size are the hash key, and item->data points to the hash value).

Storage is shared with the original hash, not copied.

comparison_func should take two svn_sort__item_t's and return an integer greater than, equal to, or less than 0, according as the first item is greater than, equal to, or less than the second.

NOTE: Private. For use by Subversion's own code only. See issue #1644.

NOTE: This function and the svn_sort__item_t should go over to APR.

int svn_sort_compare_items_as_paths const svn_sort__item_t a,
const svn_sort__item_t b
 

Compare two svn_sort__item_t's, returning an integer greater than, equal to, or less than 0, according as a is greater than, equal to, or less than b.

This is useful for converting a hash into a sorted apr_array_header_t. For example, to convert hash hsh to a sorted array, do this:

apr_array_header_t *hdr; hdr = svn_sort__hash (hsh, svn_sort_compare_items_as_paths, pool);

The key strings must be null-terminated, even though klen does not include the terminator.

int svn_sort_compare_revisions const void *  a,
const void *  b
 

Compare two svn_revnum_t's, returning an integer greater than, equal to, or less than 0, according as b is greater than, equal to, or less than a.

Note that this sorts newest revision to oldest (IOW, descending order).

This is useful for converting an array of revisions into a sorted apr_array_header_t. You are responsible for detecting, preventing or removing duplicates.


Generated on Mon Oct 18 17:33:14 2004 for Subversion by doxygen 1.3.5