Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ZDIR_PATCH(3)			   CZMQ Manual			   ZDIR_PATCH(3)

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 Li-
     cense, 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

CZMQ 4.2.1			   08/27/2026			   ZDIR_PATCH(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zdir_patch&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help