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

FreeBSD Manual Pages

  
 
  

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

NAME
       zuuid - Class for UUID support class

SYNOPSIS
       //  This	is a stable class, and may not change except for emergencies. It
       //  is provided in stable builds.
       //  Create a new	UUID object.
       CZMQ_EXPORT zuuid_t *
	   zuuid_new (void);

       //  Create UUID object from supplied ZUUID_LEN-octet value.
       CZMQ_EXPORT zuuid_t *
	   zuuid_new_from (const byte *source);

       //  Destroy a specified UUID object.
       CZMQ_EXPORT void
	   zuuid_destroy (zuuid_t **self_p);

       //  Set UUID to new supplied ZUUID_LEN-octet value.
       CZMQ_EXPORT void
	   zuuid_set (zuuid_t *self, const byte	*source);

       //  Set UUID to new supplied string value skipping '-' and '{' '}'
       //  optional delimiters.	Return 0 if OK,	else returns -1.
       CZMQ_EXPORT int
	   zuuid_set_str (zuuid_t *self, const char *source);

       //  Return UUID binary data.
       CZMQ_EXPORT const byte *
	   zuuid_data (zuuid_t *self);

       //  Return UUID binary size
       CZMQ_EXPORT size_t
	   zuuid_size (zuuid_t *self);

       //  Returns UUID	as string
       CZMQ_EXPORT const char *
	   zuuid_str (zuuid_t *self);

       //  Return UUID in the canonical	string format: 8-4-4-4-12, in lower
       //  case. Caller	does not modify	or free	returned value.	See
       //  http://en.wikipedia.org/wiki/Universally_unique_identifier
       CZMQ_EXPORT const char *
	   zuuid_str_canonical (zuuid_t	*self);

       //  Store UUID blob in target array
       CZMQ_EXPORT void
	   zuuid_export	(zuuid_t *self,	byte *target);

       //  Check if UUID is same as supplied value
       CZMQ_EXPORT bool
	   zuuid_eq (zuuid_t *self, const byte *compare);

       //  Check if UUID is different from supplied value
       CZMQ_EXPORT bool
	   zuuid_neq (zuuid_t *self, const byte	*compare);

       //  Make	copy of	UUID object; if	uuid is	null, or memory	was exhausted,
       //  returns null.
       CZMQ_EXPORT zuuid_t *
	   zuuid_dup (zuuid_t *self);

       //  Self	test of	this class.
       CZMQ_EXPORT void
	   zuuid_test (bool verbose);

       Please add '@interface' section in './../src/zuuid.c'.

DESCRIPTION
       The zuuid class generates UUIDs and provides methods for	working	with
       them. If	you build CZMQ with libuuid, on	Unix/Linux, it will use	that
       library.	On Windows it will use UuidCreate(). Otherwise it will use a
       random number generator to produce convincing imitations	of UUIDs.

       Please add @discuss section in ./../src/zuuid.c.

EXAMPLE
       From zuuid_test method.

	   //  Simple create/destroy test
	   assert (ZUUID_LEN ==	16);
	   assert (ZUUID_STR_LEN == 32);

	   zuuid_t *uuid = zuuid_new ();
	   assert (uuid);
	   assert (zuuid_size (uuid) ==	ZUUID_LEN);
	   assert (strlen (zuuid_str (uuid)) ==	ZUUID_STR_LEN);
	   zuuid_t *copy = zuuid_dup (uuid);
	   assert (streq (zuuid_str (uuid), zuuid_str (copy)));

	   //  Check set/set_str/export	methods
	   const char *myuuid =	"8CB3E9A9649B4BEF8DE225E9C2CEBB38";
	   const char *myuuid2 = "8CB3E9A9-649B-4BEF-8DE2-25E9C2CEBB38";
	   const char *myuuid3 = "{8CB3E9A9-649B-4BEF-8DE2-25E9C2CEBB38}";
	   const char *myuuid4 = "8CB3E9A9649B4BEF8DE225E9C2CEBB3838";
	   int rc = zuuid_set_str (uuid, myuuid);
	   assert (rc == 0);
	   assert (streq (zuuid_str (uuid), myuuid));
	   rc =	zuuid_set_str (uuid, myuuid2);
	   assert (rc == 0);
	   assert (streq (zuuid_str (uuid), myuuid));
	   rc =	zuuid_set_str (uuid, myuuid3);
	   assert (rc == 0);
	   assert (streq (zuuid_str (uuid), myuuid));
	   rc =	zuuid_set_str (uuid, myuuid4);
	   assert (rc == -1);
	   byte	copy_uuid [ZUUID_LEN];
	   zuuid_export	(uuid, copy_uuid);
	   zuuid_set (uuid, copy_uuid);
	   assert (streq (zuuid_str (uuid), myuuid));

	   //  Check the canonical string format
	   assert (streq (zuuid_str_canonical (uuid),
			  "8cb3e9a9-649b-4bef-8de2-25e9c2cebb38"));

	   zuuid_destroy (&uuid);
	   zuuid_destroy (&copy);

	   #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

CZMQ 4.2.1			  11/01/2025			      ZUUID(3)

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

home | help