zdir_patch(3)
Class for work with directory patches
Description
ZDIR_PATCH
NAME
zdir_patch - Class for work with directory patches
SYNOPSIS
// This is a
stable class, and may not change except for emergencies. It
// is provided in stable builds.
#define ZDIR_PATCH_CREATE 1 // Creates a new file
#define ZDIR_PATCH_DELETE 2 // Delete a file
// Create new
patch
CZMQ_EXPORT zdir_patch_t *
zdir_patch_new (const char *path, zfile_t *file, int op,
const char *alias);
// Destroy a
patch
CZMQ_EXPORT void
zdir_patch_destroy (zdir_patch_t **self_p);
// Create copy
of a patch. If the patch is null, or memory was exhausted,
// returns null.
// Caller owns return value and must destroy it when done.
CZMQ_EXPORT zdir_patch_t *
zdir_patch_dup (zdir_patch_t *self);
// Return patch
file directory path
CZMQ_EXPORT const char *
zdir_patch_path (zdir_patch_t *self);
// Return patch
file item
CZMQ_EXPORT zfile_t *
zdir_patch_file (zdir_patch_t *self);
// Return
operation
CZMQ_EXPORT int
zdir_patch_op (zdir_patch_t *self);
// Return patch
virtual file path
CZMQ_EXPORT const char *
zdir_patch_vpath (zdir_patch_t *self);
// Calculate
hash digest for file (create only)
CZMQ_EXPORT void
zdir_patch_digest_set (zdir_patch_t *self);
// Return hash
digest for patch file
CZMQ_EXPORT const char *
zdir_patch_digest (zdir_patch_t *self);
// Self test of
this class.
CZMQ_EXPORT void
zdir_patch_test (bool verbose);
Please add '@interface' section in './../src/zdir_patch.c'.
DESCRIPTION
The zdir_patch class works with one patch, which says "create this file" or "delete this file" (referring to a zfile item each time).
Please add @discuss section in ./../src/zdir_patch.c.
EXAMPLE
From zdir_patch_test method.
const char *SELFTEST_DIR_RW = "src/selftest-rw";
const char
*testfile = "bilbo";
const char *prefix = "/";
char *prefixed_testfile = zsys_sprintf ("%s%s",
prefix, testfile);
assert (prefixed_testfile);
// Make sure
old aborted tests do not hinder us
zsys_file_delete (prefixed_testfile);
zfile_t *file =
zfile_new (SELFTEST_DIR_RW, testfile);
assert (file);
zdir_patch_t *patch = zdir_patch_new (SELFTEST_DIR_RW, file,
patch_create, prefix);
assert (patch);
zfile_destroy (&file);
file =
zdir_patch_file (patch);
assert (file);
assert (streq (zfile_filename (file, SELFTEST_DIR_RW),
testfile));
assert (streq (zdir_patch_vpath (patch),
prefixed_testfile));
zdir_patch_destroy (&patch);
zstr_free (&prefixed_testfile);
#if defined
(__WINDOWS__)
zsys_shutdown();
#endif
AUTHORS
The czmq manual was written by the authors in the AUTHORS file.
RESOURCES
Main web site:
Report bugs to the email <zeromq-dev@lists.zeromq.org [1] >
COPYRIGHT
Copyright (c) the Contributors as noted in the AUTHORS file. This file is part of CZMQ, the high-level C binding for 0MQ: http://czmq.zeromq.org. This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. LICENSE included with the czmq distribution.
NOTES
|
1. |
zeromq-dev@lists.zeromq.org |
mailto:zeromq-dev@lists.zeromq.org