Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/include/svn_delta.h view on Meta::CPAN
*/
svn_error_t *(*apply_textdelta)(void *file_baton,
const char *base_checksum,
apr_pool_t *result_pool,
svn_txdelta_window_handler_t *handler,
void **handler_baton);
/** Change the value of a file's property.
* - @a file_baton specifies the file whose property should change.
* - @a name is the name of the property to change.
* - @a value is the new (final) value of the property, or @c NULL if the
* property should be removed altogether.
*
* The callback is guaranteed to be called exactly once for each property
* whose value differs between the start and the end of the edit.
*
* Any temporary allocations may be performed in @a scratch_pool.
*/
svn_error_t *(*change_file_prop)(void *file_baton,
const char *name,
const svn_string_t *value,
apr_pool_t *scratch_pool);
/** We are done processing a file, whose baton is @a file_baton (set by
* @c add_file or @c open_file). We won't be using the baton any
* more, so whatever resources it refers to may now be freed.
*
* @a text_checksum is the hex MD5 digest for the fulltext that
* resulted from a delta application, see @c apply_textdelta. The
* checksum is ignored if NULL. If not null, it is compared to the
* checksum of the new fulltext, and the error
* SVN_ERR_CHECKSUM_MISMATCH is returned if they do not match. If
* there is no new fulltext, @a text_checksum is ignored.
*
* Any temporary allocations may be performed in @a scratch_pool.
*/
svn_error_t *(*close_file)(void *file_baton,
const char *text_checksum,
apr_pool_t *scratch_pool);
/** In the directory represented by @a parent_baton, indicate that
* @a path is present as a file in the edit source, but cannot be
* cannot be conveyed to the edit consumer. Currently, this would
* only occur because of authorization restrictions, but may change
* in the future.
*
* Any temporary allocations may be performed in @a scratch_pool.
*/
svn_error_t *(*absent_file)(const char *path,
void *parent_baton,
apr_pool_t *scratch_pool);
/** All delta processing is done. Call this, with the @a edit_baton for
* the entire edit.
*
* Any temporary allocations may be performed in @a scratch_pool.
*/
svn_error_t *(*close_edit)(void *edit_baton,
apr_pool_t *scratch_pool);
/** The editor-driver has decided to bail out. Allow the editor to
* gracefully clean up things if it needs to.
*
* Any temporary allocations may be performed in @a scratch_pool.
*/
svn_error_t *(*abort_edit)(void *edit_baton,
apr_pool_t *scratch_pool);
/* Be sure to update svn_delta_get_cancellation_editor() and
* svn_delta_default_editor() if you add a new callback here. */
} svn_delta_editor_t;
/** Return a default delta editor template, allocated in @a pool.
*
* The editor functions in the template do only the most basic
* baton-swapping: each editor function that produces a baton does so
* by copying its incoming baton into the outgoing baton reference.
*
* This editor is not intended to be useful by itself, but is meant to
* be the basis for a useful editor. After getting a default editor,
* you substitute in your own implementations for the editor functions
* you care about. The ones you don't care about, you don't have to
* implement -- you can rely on the template's implementation to
* safely do nothing of consequence.
*/
svn_delta_editor_t *
svn_delta_default_editor(apr_pool_t *pool);
/** A text-delta window handler which does nothing.
*
* Editors can return this handler from @c apply_textdelta if they don't
* care about text delta windows.
*/
svn_error_t *
svn_delta_noop_window_handler(svn_txdelta_window_t *window,
void *baton);
/** Set @a *editor and @a *edit_baton to a cancellation editor that
* wraps @a wrapped_editor and @a wrapped_baton.
*
* The @a editor will call @a cancel_func with @a cancel_baton when each of
* its functions is called, continuing on to call the corresponding wrapped
* function if @a cancel_func returns #SVN_NO_ERROR.
*
* If @a cancel_func is @c NULL, set @a *editor to @a wrapped_editor and
* @a *edit_baton to @a wrapped_baton.
*/
svn_error_t *
svn_delta_get_cancellation_editor(svn_cancel_func_t cancel_func,
void *cancel_baton,
const svn_delta_editor_t *wrapped_editor,
void *wrapped_baton,
const svn_delta_editor_t **editor,
void **edit_baton,
apr_pool_t *pool);
/** Set @a *editor and @a *edit_baton to an depth-based filtering
* editor that wraps @a wrapped_editor and @a wrapped_baton.
*
* The @a editor will track the depth of this drive against the @a
( run in 0.705 second using v1.01-cache-2.11-cpan-524268b4103 )