ossp-pkg/uuid/uuid++.pod
##
## OSSP uuid - Universally Unique Identifier
## Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com>
## Copyright (c) 2004-2008 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: manual page for C++ API
##
=pod
=head1 NAME
B<OSSP uuid> - B<Universally Unique Identifier> (C++ API)
=head1 VERSION
OSSP uuid UUID_VERSION_STR
=head1 DESCRIPTION
B<uuid++> is the ISO-C++ language binding of the B<OSSP uuid> C API.
It provides a thin ISO-C++ class B<uuid> wrapping the ISO-C API type
B<uuid_t>.
=head1 APPLICATION PROGRAMMING INTERFACE
The ISO-C++ Application Programming Interface (API) of B<OSSP uuid>
consists of the following components:
=head2 CONSTANTS
The constants are the same to those provided by the ISO-C API.
See uuid(3) for details.
=head2 CLASSES
The following classes are provided:
=over 4
=item B<uuid>
This is the class corresponding to the C API type B<uuid_t>.
It is the main object.
=item B<uuid_error_t>
This is the class corresponding to the C API function B<uuid_error>.
It is the object thrown as an exception in case of any errors.
=back
=head2 METHODS
The following methods are provided:
=over 4
=item B<uuid>();
The standard constructor.
=item B<uuid>(const uuid &_obj);
The copy constructor for B<uuid> class.
=item B<uuid>(const uuid_t *_obj);
The import constructor for C API objects.
=item B<uuid>(const void *_bin);
The import constructor for binary representation.
=item B<uuid>(const char *_str);
The import constructor for string representation.
=item ~B<uuid>();
The standard destructor for B<uuid> class.
=item uuid &B<uuid::operator=>(const uuid &_obj);
The assignment operator corresponding to the copy constructor.
=item uuid &B<uuid::operator=>(const uuid_t *_obj);
The assignment operator corresponding to the import constructor for C API objects.
=item uuid &B<uuid::operator=>(const void *_bin);
The assignment operator corresponding to the import constructor for binary representation.
=item uuid &B<uuid::operator=>(const char *_str);
The assignment operator corresponding to the import constructor for string and single integer value representation.
=item uuid B<uuid::clone>(void);
Regular method corresponding to the C API function B<uuid_clone>.
=item void B<uuid::load>(const char *_name);
Regular method corresponding to the C API function B<uuid_load>.
=item void B<uuid::make>(unsigned int _mode, ...);
Regular method corresponding to the C API function B<uuid_make>.
=item int B<uuid::isnil>(void);
Regular method corresponding to the C API function B<uuid_isnil>.
=item int B<uuid::compare>(const uuid &_obj);
Regular method corresponding to the C API function B<uuid_compare>.
=item int B<uuid::operator==>(const uuid &_obj);
The comparison operator corresponding to B<uuid_compare> usage for equality.
=item int B<uuid::operator!=>(const uuid &_obj);
The comparison operator corresponding to B<uuid_compare> usage for inequality.
=item int B<uuid::operatorE<lt>>(const uuid &_obj);
The comparison operator corresponding to B<uuid_compare> usage for less-than.
=item int B<uuid::operatorE<lt>=>(const uuid &_obj);
The comparison operator corresponding to B<uuid_compare> usage for less-than-or-equal.
=item int B<uuid::operatorE<gt>>(const uuid &_obj);
The comparison operator corresponding to B<uuid_compare> usage for greater-than.
=item int B<uuid::operatorE<gt>=>(const uuid &_obj);
The comparison operator corresponding to B<uuid_compare> usage for greater-than-or-equal.
=item void B<uuid::import>(const void *_bin);
Regular method corresponding to the C API function B<uuid_import> for binary representation usage.
=item void B<uuid::import>(const char *_str);
Regular method corresponding to the C API function B<uuid_import> for string representation usage.
=item void *B<uuid::binary>(void);
Regular method corresponding to the C API function B<uuid_export> for binary representation usage.
=item char *B<uuid::string>(void);
Regular method corresponding to the C API function B<uuid_export> for string representation usage.
=item char *B<uuid::integer>(void);
Regular method corresponding to the C API function B<uuid_export> for single integer value representation usage.
=item char *B<uuid::summary>(void);
Regular method corresponding to the C API function B<uuid_export> for textual summary representation usage.
=item unsigned long B<uuid::version>(void);
Regular method corresponding to the C API function B<uuid_version>.
=item B<uuid_error_t>()
The standard constructor for B<uuid_error_t> class.
=item B<uuid_error_t>(uuid_rc_t _code)
The standard constructor for B<uuid_error_t> class with return code initialization.
=item ~B<uuid_error_t>()
The standard destructor for B<uuid_error_t> class.
=item void B<uuid_error_t::code>(uuid_rc_t _code)
Regular method for setting the return code.
=item uuid_rc_t B<uuid_error_t::code>(void)
Regular method for fetching the return code.
=item char *B<uuid_error_t::string>(void)
Regular method for fetching the string corresponding to the current return code.
=back
=head1 EXAMPLE
The following shows an example usage of the C++ API. Exception handling is
omitted for code simplification and has to be re-added for production
code.
/* generate a DCE 1.1 v1 UUID from system environment */
char *uuid_v1(void)
{
uuid id;
char *str;
id.make(UUID_MAKE_V1);
str = id.string();
return str;
}
/* generate a DCE 1.1 v3 UUID from an URL */
char *uuid_v3(const char *url)
{
uuid id;
uuid id_ns;
char *str;
id_ns.load("ns:URL");
id.make(UUID_MAKE_V3, &id_ns, url);
str = id.string();
return str;
}
=head1 SEE ALSO
uuid(3).
=cut