Provided by: libczmq-dev_4.1.0-2_amd64 bug


       zdir_patch - Class for work with directory patches


       //  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'.


       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.


       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__)


       The czmq manual was written by the authors in the AUTHORS file.


       Main web site:

       Report bugs to the email <[1]>


       Copyright (c) the Contributors as noted in the AUTHORS file. This file is part of CZMQ,
       the high-level C binding for 0MQ: 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 LICENSE
       included with the czmq distribution.