props.h File Reference

Property handling header file - prop-set, prop-get, prop-list. More...

#include <sys/types.h>
#include "global.h"
#include "hash_ops.h"

Include dependency graph for props.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  prp__set_from_aprhash_e { DEFAULT = 0, STORE_IN_FS = 1, ONLY_KEEP_USERDEF = 2 }
 Bitmasks for prp__set_from_aprhash() operation. More...

Functions

int prp__set (hash_t db, const char *name, const char *data, int datalen)
 Set a property by name and data/datalen.
int prp__set_svnstr (hash_t db, const char *name, const svn_string_t *utf8_value)
 Set a property by svn_string_t.
int prp__set_from_aprhash (struct estat *sts, apr_hash_t *props, enum prp__set_from_aprhash_e flags, hash_t *props_db, apr_pool_t *pool)
 Writes the given set of properties of sts into its prop file.
static int prp__prop_will_be_removed (datum data)
 Test function for to-be-removed properties.
Opening a property file.
The flags for this operations are defined in GDBM(3gdbm):
  • GDBM_WRCREAT
  • GDBM_READER
  • GDBM_WRITER
  • GDBM_NEWDB


int prp__open_byname (char *wcfile, int gdbm_mode, hash_t *db)
 Open a property file, by WC-path.
int prp__open_byestat (struct estat *sts, int gdbm_mode, hash_t *db)
 Open a property file, by struct estat.
int prp__db_open_byname (char *wcfile, int flags, char *name, hash_t *db)
 Wrapper functions, if we need to have some compatibility layer.
int prp__get (hash_t db, char *keycp, datum *value)
 Get a value, addressed by a string; key length is calculated inclusive the \0.
int prp__store (hash_t db, datum key, datum value)
 Store the value; basic function.
static int prp__first (hash_t db, datum *key)
 Get first key.
static int prp__next (hash_t db, datum *key, const datum *oldkey)
 Get next key.
static int prp__fetch (hash_t db, datum key, datum *value)
 Fetch a value.
int prp__open_get_close (struct estat *sts, char *name, char **data, int *len)
 Open, fetch, close a property hash corresponding to sts and name.
int prp__unlink_db_for_estat (struct estat *sts)
 -.

Variables

work_t prp__g_work
 Prop-get worker function.
work_t prp__s_work
 Prop-set worker function.
work_t prp__l_work
 Prop-list worker function.
const char prp___to_be_removed_value []
 Value string for to-be-removed properties.


Detailed Description

Property handling header file - prop-set, prop-get, prop-list.

Definition in file props.h.


Enumeration Type Documentation

Bitmasks for prp__set_from_aprhash() operation.

Enumerator:
DEFAULT 
STORE_IN_FS 
ONLY_KEEP_USERDEF 

Definition at line 45 of file props.h.


Function Documentation

int prp__db_open_byname ( char *  wcfile,
int  flags,
char *  name,
hash_t db 
)

Wrapper functions, if we need to have some compatibility layer.

Open a database, path specified through wcfile and name.

static int prp__fetch ( hash_t  db,
datum  key,
datum *  value 
) [inline, static]

Fetch a value.

Definition at line 92 of file props.h.

References BUG_ON, DEBUGP, and hsh__fetch().

Referenced by ci___send_user_props(), prp__g_work(), prp__get(), prp__l_work(), and prp__s_work().

Here is the call graph for this function:

Here is the caller graph for this function:

static int prp__first ( hash_t  db,
datum *  key 
) [inline, static]

Get first key.

Definition at line 70 of file props.h.

References BUG_ON, and hsh__first().

Referenced by ci___send_user_props(), and prp__l_work().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__get ( hash_t  db,
char *  keycp,
datum *  value 
)

Get a value, addressed by a string; key length is calculated inclusive the \0.

Get a value, addressed by a string; key length is calculated inclusive the \0.

Wrapper for prp__fetch().

Definition at line 446 of file props.c.

References prp__fetch().

Referenced by prp__open_get_close(), and up__fetch_decoder().

Here is the call graph for this function:

Here is the caller graph for this function:

static int prp__next ( hash_t  db,
datum *  key,
const datum *  oldkey 
) [inline, static]

Get next key.

Definition at line 81 of file props.h.

References BUG_ON, and hsh__next().

Referenced by ci___send_user_props(), and prp__l_work().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__open_byestat ( struct estat sts,
int  gdbm_mode,
hash_t db 
)

Open a property file, by struct estat.

Open a property file, by struct estat.

Returns ENOENT silently.

Definition at line 367 of file props.c.

References ops__build_path(), prp__open_byname(), and STOPIF.

Referenced by ops__apply_group(), prp__open_get_close(), prp__s_work(), prp__set_from_aprhash(), and up__fetch_decoder().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__open_byname ( char *  wcfile,
int  gdbm_mode,
hash_t db 
)

Open a property file, by WC-path.

Open a property file, by WC-path.

Just a wrapper for the normal property operation.

Must be silent for ENOENT, so that fsvs pl * doesn't give an error.

Definition at line 351 of file props.c.

References hsh__new(), STOPIF, and WAA__PROP_EXT.

Referenced by prp__g_work(), prp__l_work(), and prp__open_byestat().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__open_get_close ( struct estat sts,
char *  name,
char **  data,
int *  len 
)

Open, fetch, close a property hash corresponding to sts and name.

Open, fetch, close a property hash corresponding to sts and name.

data and len are optional output parameters, ie. may be NULL. if data is used, it must be free()d.

Returns ENOENT silently.

Definition at line 750 of file props.c.

References hsh__close(), IF_FREE, prp__get(), prp__open_byestat(), and STOPIF.

Here is the call graph for this function:

static int prp__prop_will_be_removed ( datum  data  )  [inline, static]

Test function for to-be-removed properties.

Definition at line 128 of file props.h.

References prp___to_be_removed_value.

Referenced by ci___send_user_props(), prp__g_work(), and prp__l_work().

Here is the caller graph for this function:

int prp__set ( hash_t  db,
const char *  name,
const char *  data,
int  datalen 
)

Set a property by name and data/datalen.

Set a property by name and data/datalen.

If datalen is -1, strlen(data) is used.

Definition at line 384 of file props.c.

References BUG_ON, prp__store(), and STOPIF.

Referenced by prp__set_svnstr().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__set_from_aprhash ( struct estat sts,
apr_hash_t *  props,
enum prp__set_from_aprhash_e  flags,
hash_t props_db,
apr_pool_t *  pool 
)

Writes the given set of properties of sts into its prop file.

Writes the given set of properties of sts into its prop file.

The meta-data of the entry is overwritten with the data coming from the repository; its estat::remote_status is set. If props_db is not NULL, the still opened property database is returned.

Todo:
  • store in utf-8? local encoding? What if it's binary??? Better do no translation, ie store as UTF-8.

Definition at line 462 of file props.c.

References DEBUGP, HASH_REMEMBER_FILENAME, hsh__close(), ONLY_KEEP_USERDEF, prp__open_byestat(), prp__set_svnstr(), prp__unlink_db_for_estat(), STOPIF, STORE_IN_FS, and up__parse_prop().

Referenced by ops__apply_group(), rev__get_props(), rev__get_text_to_stream(), and rev__install_file().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__set_svnstr ( hash_t  db,
const char *  name,
const svn_string_t *  utf8_value 
) [inline]

Set a property by svn_string_t.

Set a property by svn_string_t.

Convenience function. The svn_string_t has the number of characters used, whereas we store the \0 at the end, too.

Definition at line 423 of file props.c.

References prp__set().

Referenced by prp__set_from_aprhash().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__store ( hash_t  db,
datum  key,
datum  value 
)

Store the value; basic function.

Definition at line 433 of file props.c.

References DEBUGP, hsh__store(), and STOPIF.

Referenced by prp__s_work(), and prp__set().

Here is the call graph for this function:

Here is the caller graph for this function:

int prp__unlink_db_for_estat ( struct estat sts  ) 

-.

Definition at line 870 of file props.c.

References ops__build_path(), STOPIF, waa__get_gwd_flag(), waa__get_waa_directory(), and WAA__PROP_EXT.

Referenced by prp__set_from_aprhash().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

Value string for to-be-removed properties.

Value string for to-be-removed properties.

I thought about using "constant prefix.$random" => "$propertyname" for them - but it's more work than simply ignoring them before listing.

And as they're not widely used, it's easier this way.

Definition at line 340 of file props.c.

Referenced by prp__prop_will_be_removed(), and prp__s_work().

work_t prp__g_work

Prop-get worker function.

Definition at line 118 of file props.h.

work_t prp__l_work

Prop-list worker function.

Definition at line 122 of file props.h.

work_t prp__s_work

Prop-set worker function.

Definition at line 120 of file props.h.


Generated for fsvs by  doxygen 1.5.9