fs.h

来自「linux subdivision ying gai ke yi le ba」· C头文件 代码 · 共 225 行

H
225
字号
/* * fs_loader.c:  Front-end to the various FS back ends * * ==================================================================== * Copyright (c) 2000-2004 CollabNet.  All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution.  The terms * are also available at http://subversion.tigris.org/license-1.html. * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * * This software consists of voluntary contributions made by many * individuals.  For exact contribution history, see the revision * history and logs, available at http://subversion.tigris.org/. * ==================================================================== */typedef struct fs_vtable_t{  svn_error_t *(*create) (svn_fs_t *fs, const char *path, svn_config_t *cfg);  svn_error_t *(*open) (svn_fs_t *fs, const char *path, const int flag,			   svn_config_t *cfg);  void (*set_warning_func) (svn_fs_t *fs,svn_fs_warning_callback_t warning,                            void *warning_baton);  const char *(*get_path) (svn_fs_t *fs, apr_pool_t *pool);  svn_error_t *(*delete_fs) (const char *PATH, apr_pool_t *pool);  svn_error_t *(*recover) (const char *path, apr_pool_t *pool);  svn_error_t *(*youngest_rev) (svn_revnum_t *youngest_p, svn_fs_t *fs,                                apr_pool_t *pool);  svn_error_t *(*revision_prop) (svn_string_t **value_p, svn_fs_t *fs,                                 svn_revnum_t rev, const char *propname,                                 apr_pool_t *pool);  svn_error_t *(*revision_proplist) (apr_hash_t **table_p, svn_fs_t *fs,                                     svn_revnum_t rev, apr_pool_t *pool);  svn_error_t *(*change_rev_prop) (svn_fs_t *fs, svn_revnum_t rev,                                   const char *name,                                   const svn_string_t *value,                                   apr_pool_t *pool);  svn_error_t *(get_uuid) (svn_fs_t *fs, const char **uuid, apr_pool_t *pool);  svn_error_t *(set_uuid) (svn_fs_t *fs, const char *uuid,                            apr_pool_t *pool);  svn_error_t *(*revision_root) (svn_fs_root_t **root_p, svn_fs_t *fs,                                 svn_revnum_t rev, apr_pool_t *pool);  svn_error_t *(*begin_txn) (svn_fs_txn_t **txn_p, svn_fs_t *fs,                             svn_revnum_t rev, svn_config_t *cfg,                              apr_pool_t *pool);  svn_error_t *(*open_txn) (svn_fs_txn_t **txn, svn_fs_t *fs,                            const char *name, svn_config_t *cfg,                             apr_pool_t *pool);  svn_error_t *(*list_transactions) (apr_array_header_t **names_p,                                     svn_fs_t *fs, apr_pool_t *pool);  svn_error_t *(*deltify) (svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool);} fs_vtable_t;typedef struct txn_vtable_t{  svn_error_t *(*commit) (const char **conflict_p, svn_revnum_t *new_rev,			  svn_fs_txn_t *txn);  svn_error_t *(*abort) (svn_fs_txn_t *txn);  svn_revnum_t (*base_revision) (svn_fs_txn_t *txn);  svn_error_t *(*get_prop) (svn_string_t **value_p, svn_fs_txn_t *txn,                            const char *propname, apr_pool_t *pool);  svn_error_t *(*get_proplist) (apr_hash_t **table_p, svn_fs_txn_t *txn,                                apr_pool_t *pool);  svn_error_t *(*change_prop) (svn_fs_txn_t *txn, const char *name,			       const svn_string_t *value, apr_pool_t *pool);  svn_error_t *(*root) (svn_fs_root_t **root_p, svn_fs_txn_t *txn,			svn_config_t *cfg, apr_pool_t *pool);};struct root_vtable_t{  /* Determining what has changed under a ROOT. */  svn_error_t *(*paths_changed) (apr_hash_t **changed_paths_p,                                 svn_fs_root_t *root,                                 apr_pool_t *pool);  svn_error_t (*check_path) (svn_node_kind_t *kind, svn_fs_root_t *root, cons			     char *path, apr_pool_t *pool);  svn_error_t *(*node_id) (const svn_fs_id_t **id_p, svn_fs_root_t *root,                           const char *path, apr_pool_t *pool);  svnn_error_t *(*node_created_rev) (svn_revnum_t *revision,                                    svn_fs_root_t *root, const char *path,                                    apr_pool_t *pool);  svn_error_t *(*node_prop) (svn_string_t **value_p, svn_fs_root_t *root,                             const char *path, const char *propname,                             apr_pool_t *pool);  svn_error_t *(*node_proplist) (apr_hash_t **table_p, svn_fs_root_t *root,                                 const char *path, apr_pool_t *pool);  svn_error_t *(*change_node_prop) (svn_fs_root_t *root, const char *path,                                    const char *name,                                    const svn_string_t *value,                                    apr_pool_t *pool);  svn_error_t *(*props_changed) (int *changed_p, svn_fs_root_t *root1,                                 const char *path1, svn_fs_root_t *root2,                                 const char *path2, apr_pool_t *pool);  svn_error_t *(*copied_from) (svn_revnum_t *rev_p, const char **path_p,                               svn_fs_root_t *root, const char *path,                               apr_pool_t *pool);  /* Directories.  */  svn_error_t *(*dir_entries) (apr_hash_t **entries_p, svn_fs_root_t *root,                               const char *path, apr_pool_t *pool);  svn_error_t *(*make_dir) (svn_fs_root_t *root, const char *path,                            apr_pool_t *pool);  svn_error_t *(*delete_node) (svn_fs_root_t *root, const char *path,                              apr_pool_t *pool);  svn_error_t *(*delete_tree) (svn_fs_root_t *root, const char *path,                               apr_pool_t *pool);  svn_error_t *(*rename) (svn_fs_root_t *root, const char *from,                          const char *to, apr_pool_t *pool);  svn_error_t *(*copy) (svn_fs_root_t *from_root, const char *from_path,                        svn_fs_root_t *to_root, const char *to_path,                        apr_pool_t *pool);  svn_error_t *(*revision_link) (svn_fs_root_t *from_root,                                 svn_fs_root_t *to_root,                                 const char *path,                                 apr_pool_t *pool);  /* Files.  */  svn_error_t *(*file_length) (apr_off_t *length_p, svn_fs_root_t *root,                               const char *path, apr_pool_t *pool);  svn_error_t *(*file_md5_checksum) (unsigned char digest[],				     svn_fs_root_t *root,                                     const char *path, apr_pool_t *pool);  svn_error_t *(*file_contents) (svn_stream_t **contents,				 svn_fs_root_t *root, const char *path,				 apr_pool_t *pool);  svn_error_t *(*make_file) (svn_fs_root_t *root, const char *path,			     apr_pool_t *pool);  svn_error_t *(*apply_textdelta) (svn_txdelta_window_handler_t *contents_p,                                   void **contents_baton_p,                                   svn_fs_root_t *root, const char *path,                                   const char *base_checksum,				   const char *result_checksum,				   apr_pool_t *pool);  svn_error_t *(*apply_text) (svn_stream_t **contents_p, svn_fs_root_t *root,                              const char *path, const char *result_checksum,                              apr_pool_t *pool);  svn_error_t *(*contents_changed) (int *changed_p, svn_fs_root_t *root1,                                    const char *path1, svn_fs_root_t *root2,                                    const char *path2, apr_pool_t *pool);  svn_error_t *(*get_file_delta_stream) (svn_txdelta_stream_t **stream_p,                                         svn_fs_root_t *source_root,                                         const char *source_path,                                         svn_fs_root_t *target_root,                                         const char *target_path,                                         apr_pool_t *pool);  svn_error_t *(*merge) (const char **conflict_p,                         svn_fs_root_t *source_root,                         const char *source_path,                         svn_fs_root_t *target_root,                         const char *target_path,                         svn_fs_root_t *ancestor_root,                         const char *ancestor_path,                         apr_pool_t *pool);};struct svn_fs_t{  /* A pool managing this filesystem */  apr_pool_t *pool;  /* The path to the repository's top-level directory */  char *path;  /* A callback for printing warning messages */  svn_fs_warning_callback_t warning;  void *warning_baton;  /* The filesystem configuration */  svn_config_t *config;  /* FSAP-specific vtable and private data */  fs_vtable_t *vtable;  void *fsap_data;};struct svn_fs_txn_t{  /* A pool managing this transaction.  Freeing the pool releases any     DB resources used by the transaction, but does not delete the     transaction. */  apr_pool_t *pool;  /* The filesystem to which this transaction belongs */  svn_fs_t *fs;  /* The revision on which this transaction is based, or     SVN_INVALID_REVISION if the transaction is not based on a     revision at all */  svn_revnum_t base_rev;  /* The ID of this transaction */  const char *name;  /* FSAP-specific vtable and private data */  txn_vtable_t *vtable;  void *fsap_data;};struct svn_fs_root_t{  /* A pool managing this root */  apr_pool_t *pool;  /* The filesystem to which this root belongs */  svn_fs_t *fs;  /* The kind of root this is */  root_kind_t kind;  /* For transaction roots, the name of the transaction  */  const char *txn;  /* For revision roots, the number of the revision.  */  svn_revnum_t rev;  /* FSAP-specific vtable and private data */  root_vtable_t *vtable;  void *fsap_data;};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?