zdir_patch(3) ============= NAME ---- zdir_patch - work with directory patches SYNOPSIS -------- ---- // This is a stable class, and may not change except for emergencies. It // is provided in stable builds. // typedef enum { ZDIR_PATCH_CREATE = 1, // ZDIR_PATCH_DELETE = 2 // } zdir_patch_op_t; // Create new patch CZMQ_EXPORT zdir_patch_t * zdir_patch_new (const char *path, zfile_t *file, zdir_patch_op_t 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 zdir_patch_op_t 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); ---- 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 ---- zfile_t *file = zfile_new (".", "bilbo"); assert (file); zdir_patch_t *patch = zdir_patch_new (".", file, patch_create, "/"); assert (patch); zfile_destroy (&file); file = zdir_patch_file (patch); assert (file); assert (streq (zfile_filename (file, "."), "bilbo")); assert (streq (zdir_patch_vpath (patch), "/bilbo")); zdir_patch_destroy (&patch); ----