summaryrefslogtreecommitdiff
path: root/shared/ossp_uuid/perl/uuid.pod
diff options
context:
space:
mode:
Diffstat (limited to 'shared/ossp_uuid/perl/uuid.pod')
-rw-r--r--shared/ossp_uuid/perl/uuid.pod207
1 files changed, 207 insertions, 0 deletions
diff --git a/shared/ossp_uuid/perl/uuid.pod b/shared/ossp_uuid/perl/uuid.pod
new file mode 100644
index 00000000..7c6172f0
--- /dev/null
+++ b/shared/ossp_uuid/perl/uuid.pod
@@ -0,0 +1,207 @@
+##
+## OSSP uuid - Universally Unique Identifier
+## Copyright (c) 2004-2007 Ralf S. Engelschall <rse@engelschall.com>
+## Copyright (c) 2004-2007 The OSSP Project <http://www.ossp.org/>
+##
+## This file is part of OSSP uuid, a library for the generation
+## of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/
+##
+## Permission to use, copy, modify, and distribute this software for
+## any purpose with or without fee is hereby granted, provided that
+## the above copyright notice and this permission notice appear in all
+## copies.
+##
+## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+## SUCH DAMAGE.
+##
+## uuid.pod: Perl Binding (Perl/POD part)
+##
+
+=pod
+
+=head1 NAME
+
+OSSP::uuid - B<OSSP uuid> Perl Binding
+
+=head1 DESCRIPTION
+
+B<OSSP uuid> is a ISO-C:1999 application programming interface (API)
+and corresponding command line interface (CLI) for the generation of
+DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant I<Universally Unique
+Identifier> (UUID). It supports DCE 1.1 variant UUIDs of version 1 (time
+and node based), version 3 (name based, MD5), version 4 (random number
+based) and version 5 (name based, SHA-1). Additional API bindings are
+provided for the languages ISO-C++:1998, Perl:5 and PHP:4/5. Optional
+backward compatibility exists for the ISO-C DCE-1.1 and Perl Data::UUID
+APIs.
+
+B<OSSP::uuid> is the Perl binding to the B<OSSP uuid> API.
+Three variants are provided:
+
+=head2 TIE-STYLE API
+
+The TIE-style API is a functionality-reduced wrapper around the OO-style
+API and intended for very high-level convenience programming:
+
+=over 4
+
+=item C<use OSSP::uuid;>
+
+=item B<tie>C< my $uuid, 'OSSP::uuid::tie', $mode, ...;>
+
+=item C<$uuid = [ $mode, ... ];>
+
+=item C<print "UUID=$uuid\n";>
+
+=item C<untie $uuid;>
+
+=back
+
+=head2 OO-STYLE API
+
+The OO-style API is a wrapper around the C-style API and intended for
+high-level regular programming.
+
+=over 4
+
+=item C<use OSSP::uuid;>
+
+=item C<my $uuid = >B<new>C< OSSP::uuid;>
+
+=item C<$uuid-E<gt>>B<load>C<($name);>
+
+=item C<$uuid-E<gt>>B<make>C<($mode, ...);>
+
+=item C<$result = $uuid-E<gt>>B<isnil>C<();>
+
+=item C<$result = $uuid-E<gt>>B<compare>C<($uuid2);>
+
+=item C<$uuid-E<gt>>B<import>C<($fmt, $data_ptr);>
+
+=item C<$data_ptr = $uuid-E<gt>>B<export>C<($fmt);>
+
+=item C<[(]$str[, $rc)] = $uuid-E<gt>>B<error>C<();>
+
+=item C<$ver = $uuid-E<gt>>B<version>C<();>
+
+=item C<undef $uuid;>
+
+=back
+
+Additionally, the strings C<"v1">, C<"v3">, C<"v4">, C<"v5"> and C<"mc">
+can be used in C<$mode> and the strings C<"bin">, C<"str">, and C<"txt">
+can be used for C<$fmt>.
+
+=head2 C-STYLE API
+
+The C-style API is a direct mapping
+of the B<OSSP uuid> ISO-C API to Perl and is intended for low-level
+programming. See uuid(3) for a description of the functions and
+their expected arguments.
+
+=over 4
+
+=item C<use OSSP::uuid qw(:all);>
+
+=item C<my $uuid; $rc = >B<uuid_create>C<($uuid);>
+
+=item C<$rc = >B<uuid_load>C<($uuid, $name);>
+
+=item C<$rc = >B<uuid_make>C<($uuid, $mode, ...);>
+
+=item C<$rc = >B<uuid_isnil>C<($uuid, $result);>
+
+=item C<$rc = >B<uuid_compare>C<($uuid, $uuid2, $result);>
+
+=item C<$rc = >B<uuid_import>C<($uuid, $fmt, $data_ptr, $data_len);>
+
+=item C<$rc = >B<uuid_export>C<($uuid, $fmt, $data_ptr, $data_len);>
+
+=item C<$str = >B<uuid_error>C<($rc);>
+
+=item C<$ver = >B<uuid_version>C<();>
+
+=item C<$rc = >B<uuid_destroy>C<($uuid);>
+
+=back
+
+Additionally, the following constants are exported for use in C<$rc>, C<$mode>, C<$fmt> and C<$ver>:
+
+C<UUID_VERSION>,
+C<UUID_LEN_BIN>,
+C<UUID_LEN_STR>,
+C<UUID_RC_OK>,
+C<UUID_RC_ARG>,
+C<UUID_RC_MEM>,
+C<UUID_RC_SYS>,
+C<UUID_RC_INT>,
+C<UUID_RC_IMP>,
+C<UUID_MAKE_V1>,
+C<UUID_MAKE_V3>,
+C<UUID_MAKE_V4>,
+C<UUID_MAKE_V5>,
+C<UUID_MAKE_MC>,
+C<UUID_FMT_BIN>,
+C<UUID_FMT_STR>,
+C<UUID_FMT_SIV>,
+C<UUID_FMT_TXT>.
+
+=head1 EXAMPLES
+
+The following two examples create the version 3 UUID
+C<02d9e6d5-9467-382e-8f9b-9300a64ac3cd>, both via the OO-style and the
+C-style API. Error handling is omitted here for easier reading, but has
+to be added for production-quality code.
+
+ # TIE-style API (very high-level)
+ use OSSP::uuid;
+ tie my $uuid, 'OSSP::uuid::tie';
+ $uuid = [ "v1" ];
+ print "UUIDs: $uuid, $uuid, $uuid\n";
+ $uuid = [ "v3", "ns:URL", "http://www.ossp.org/" ];
+ print "UUIDs: $uuid, $uuid, $uuid\n";
+ untie $uuid;
+
+ # OO-style API (high-level)
+ use OSSP::uuid;
+ my $uuid = new OSSP::uuid;
+ my $uuid_ns = new OSSP::uuid;
+ $uuid_ns->load("ns:URL");
+ $uuid->make("v3", $uuid_ns, "http://www.ossp.org/");
+ undef $uuid_ns;
+ my $str = $uuid->export("str");
+ undef $uuid;
+ print "$str\n";
+
+ # C-style API (low-level)
+ use OSSP::uuid qw(:all);
+ my $uuid; uuid_create($uuid);
+ my $uuid_ns; uuid_create($uuid_ns);
+ uuid_load($uuid_ns, "ns:URL");
+ uuid_make($uuid, UUID_MAKE_V3, $uuid_ns, "http://www.ossp.org/");
+ uuid_destroy($uuid_ns);
+ my $str; uuid_export($uuid, UUID_FMT_STR, $str, undef);
+ uuid_destroy($uuid);
+ print "$str\n";
+
+=head1 SEE ALSO
+
+uuid(1), uuid-config(1), uuid(3).
+
+=head1 HISTORY
+
+The Perl binding B<OSSP::uuid> to B<OSSP uuid> was implemented in
+November 2004 by Ralf S. Engelschall E<lt>rse@engelschall.comE<gt>.
+
+=cut
+
bgstack15