Added documentation generated with AdaBrowse. When changing an interface, must run 'make docs' before commiting.

This commit is contained in:
Anthony Arnold 2012-01-20 11:20:42 +10:00
parent c6e68bfcc7
commit 8b92cc5369
8 changed files with 493 additions and 25 deletions

View File

@ -11,7 +11,7 @@ MKDIR=mkdir -p
CP=cp
.PHONY: debug test install installclean clean cleanall all support remove dist
.PHONY: debug test install installclean clean cleanall all support remove dist docs
#library
$(LIB): src/*.adb src/*.ads include/*.ads adaid.gpr
@ -93,6 +93,11 @@ $(DIST): cleanall
--xform 's!$(THIS)!$(DIST_NAME)!'\
$(THIS)
#documentation
docs: include/*.ads
ls include/*.ads | adabrowse -i -o ./ -f-
@mv *.html doc
#misc
all: $(LIB) $(TEST)
@ -100,5 +105,5 @@ clean:
$(RM) -f obj/*.* obj/test/*.* obj/debug/*.* ali/*.* ali/debug/*.* 2> /dev/null
cleanall: clean
$(RM) -f support/*.gpr bin/* lib/* adaid.gpr 2> /dev/null
$(RM) -f support/*.gpr bin/* lib/* adaid.gpr doc/*.html 2> /dev/null

0
doc/.gitignore vendored Normal file
View File

124
doc/adaid-generate.html Normal file
View File

@ -0,0 +1,124 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Package: AdaID.Generate</TITLE>
<META NAME="generator" CONTENT="AdaBrowse 4.0.3 http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/">
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<LINK REV="made" HREF="http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/">
<STYLE TYPE="text/css">
TABLE.title { background-color : #99CCFF }
TABLE.footer { background-color : #99CCFF }
TD.type { background-color : #CCEEFF }
TD.odd { background-color : #99CCFF }
TD.even { background-color : #CCEEFF }
TD.code { background-color : #EEEEEE }
SPAN.comment { color : red }
SPAN.literal { color : green }
SPAN.definition { color : purple }
H3.subtitle { background-color : #CCEEFF }
UL.index { list-style: none }
</STYLE>
<LINK REL="stylesheet" HREF="adabrowse.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFF4">
<TABLE WIDTH="100%" CLASS="title" BORDER=0 CELLSPACING=0 CELLPADDING=5><TR><TD><H2>Package: AdaID.Generate</H2></TD></TR></TABLE>
<!-- Generated by AdaBrowse 4.0.3 http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/ -->
<H3 CLASS="subtitle">Description</H3>
<DIV>
AdaID.Generate defines the functions required to generate UUIDs using
different standard methods.
</DIV>
<HR>
<TABLE WIDTH="100%" BORDER=1 CELLSPACING=0 CELLPADDING=0>
<TR><TD COLSPAN=2>
<H3 CLASS="subtitle">Header</H3>
</TD></TR>
<TR><TD COLSPAN=2 CLASS="odd">
<PRE><CODE><STRONG>package</STRONG> <A HREF="adaid.html">AdaID</A>.<A NAME="10_15"><SPAN CLASS="definition">Generate</SPAN></A> <STRONG>is</STRONG>
</CODE></PRE>
</TD></TR>
<TR><TD WIDTH="2%" CLASS="odd"><PRE> </PRE></TD>
<TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD>
<H3 CLASS="subtitle">Exceptions</H3>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0>
<TR><TD ALIGN="LEFT" CLASS="code">
<CODE><A NAME="12_2"><SPAN CLASS="definition">Invalid_String</SPAN></A></CODE></TD></TR>
<TR><TD>
<DIV>
Thrown when invalid strings are passed to From_String
</DIV>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD>
<HR>
<H3 CLASS="subtitle">Other Items:</H3>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>procedure</STRONG> <A NAME="16_12"><SPAN CLASS="definition">Nil</SPAN></A>(id : <STRONG>in</STRONG> <STRONG>out</STRONG> <A HREF="adaid.html#46_7">UUID</A>);</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Set a UUID to Nil
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>procedure</STRONG> <A NAME="20_12"><SPAN CLASS="definition">Random</SPAN></A>(id : <STRONG>in</STRONG> <STRONG>out</STRONG> <A HREF="adaid.html#46_7">UUID</A>);</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Generate a random UUID
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>procedure</STRONG> <A NAME="23_12"><SPAN CLASS="definition">From_Name</SPAN></A>(namespace: <STRONG>in</STRONG> <A HREF="adaid.html#46_7">UUID</A>; name: <STRONG>in</STRONG> String; id: <STRONG>in</STRONG> <STRONG>out</STRONG> <A HREF="adaid.html#46_7">UUID</A>);</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Generate a UUID based on a name
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>procedure</STRONG> <A NAME="26_12"><SPAN CLASS="definition">From_String</SPAN></A>(str : <STRONG>in</STRONG> String; id : <STRONG>in</STRONG> <STRONG>out</STRONG> <A HREF="adaid.html#46_7">UUID</A>);</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Generate a UUID from a string.
This is not so much generation, but reconstruction
</DIV>
</TD></TR>
</TABLE>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD COLSPAN=2 CLASS="odd">
<PRE><CODE><STRONG>end</STRONG> <A HREF="adaid.html">AdaID</A>.Generate;</CODE></PRE>
</TD></TR>
</TABLE>
<!-- --><HR><TABLE WIDTH="100%" CLASS="footer" BORDER=0 CELLSPACING=0 CELLPADDING=5><TR><TD><FONT SIZE=-1><!-- -->Generated on 2012-01-20 at 11:19:19 by <A HREF="http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/" TARGET="_top">AdaBrowse 4.0.3</A>.</FONT></TD></TR></TABLE>
</BODY>
</HTML>

288
doc/adaid.html Normal file
View File

@ -0,0 +1,288 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Package: AdaID</TITLE>
<META NAME="generator" CONTENT="AdaBrowse 4.0.3 http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/">
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<LINK REV="made" HREF="http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/">
<STYLE TYPE="text/css">
TABLE.title { background-color : #99CCFF }
TABLE.footer { background-color : #99CCFF }
TD.type { background-color : #CCEEFF }
TD.odd { background-color : #99CCFF }
TD.even { background-color : #CCEEFF }
TD.code { background-color : #EEEEEE }
SPAN.comment { color : red }
SPAN.literal { color : green }
SPAN.definition { color : purple }
H3.subtitle { background-color : #CCEEFF }
UL.index { list-style: none }
</STYLE>
<LINK REL="stylesheet" HREF="adabrowse.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFF4">
<TABLE WIDTH="100%" CLASS="title" BORDER=0 CELLSPACING=0 CELLPADDING=5><TR><TD><H2>Package: AdaID</H2></TD></TR></TABLE>
<!-- Generated by AdaBrowse 4.0.3 http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/ -->
<H3 CLASS="subtitle">Dependencies</H3>
<PRE><CODE><STRONG>with</STRONG> Ada.Finalization;
<STRONG>with</STRONG> Interfaces; <STRONG>use</STRONG> Interfaces;</CODE></PRE>
<DIV>
for Unsigned_n
</DIV>
<HR>
<H3 CLASS="subtitle">Description</H3>
<DIV>
File: adaid.ads
Description: A UUID type for Ada
Author: Anthony Arnold
License: http://www.gnu.org/licenses/gpl.txt
</DIV>
<HR>
<TABLE WIDTH="100%" BORDER=1 CELLSPACING=0 CELLPADDING=0>
<TR><TD COLSPAN=2>
<H3 CLASS="subtitle">Header</H3>
</TD></TR>
<TR><TD COLSPAN=2 CLASS="odd">
<PRE><CODE><STRONG>package</STRONG> <A NAME="13_9"><SPAN CLASS="definition">AdaID</SPAN></A> <STRONG>is</STRONG>
</CODE></PRE>
</TD></TR>
<TR><TD WIDTH="2%" CLASS="odd"><PRE> </PRE></TD>
<TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD>
<H3 CLASS="subtitle">Type Summary</H3>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0>
<TR><TD COLSPAN=2 ALIGN="LEFT" CLASS="type">
<CODE><A HREF="#21_7">Byte</A></CODE></TD></TR>
<TR><TD COLSPAN=2 ALIGN="LEFT" CLASS="type">
<CODE><A HREF="#24_7">ByteArray</A></CODE></TD></TR>
<TR><TD COLSPAN=2 ALIGN="LEFT" CLASS="type">
<CODE><A HREF="#46_7">UUID</A></CODE> derived from <CODE>Controlled</CODE></TD></TR>
<TR><TD VALIGN="TOP">New&nbsp;Operations:&nbsp;</TD><TD WIDTH="100%">
<CODE><A HREF="#61_11">&quot;=&quot;</A></CODE>,
<CODE><A HREF="#64_11">Get_Hash_Value</A></CODE>,
<CODE><A HREF="#58_11">Get_Variant</A></CODE>,
<CODE><A HREF="#55_11">Get_Version</A></CODE>,
<CODE><A HREF="#52_11">Is_Nil</A></CODE>,
<CODE><A HREF="#67_11">To_String</A></CODE>
</TD></TR>
<TR><TD VALIGN="TOP">Inherited&nbsp;Operations:&nbsp;</TD><TD WIDTH="100%">
<CODE>Adjust</CODE>,
<CODE>Finalize</CODE>,
<CODE>Initialize</CODE>
</TD></TR>
<TR><TD COLSPAN=2 ALIGN="LEFT" CLASS="type">
<CODE><A HREF="#37_7">VariantType</A></CODE></TD></TR>
<TR><TD COLSPAN=2 ALIGN="LEFT" CLASS="type">
<CODE><A HREF="#27_7">VersionType</A></CODE></TD></TR>
</TABLE>
</TD></TR>
<TR><TD>
<HR>
<H3 CLASS="subtitle">Constants and Named Numbers</H3>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0>
<TR><TD ALIGN="LEFT" CLASS="code">
<CODE><A NAME="15_2"><SPAN CLASS="definition">uuid_size</SPAN></A>: <STRONG>constant</STRONG> Integer := 16;</CODE>
</TD></TR>
<TR><TD>
<DIV>
This many bytes in a UUID
</DIV>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD>
<HR>
<H3 CLASS="subtitle">Other Items:</H3>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>subtype</STRONG> <A NAME="18_10"><SPAN CLASS="definition">HashType</SPAN></A> <STRONG>is</STRONG> Unsigned_32;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Represents a &quot;Hash Code&quot; of a UUID
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>type</STRONG> <A NAME="21_7"><SPAN CLASS="definition">Byte</SPAN></A> <STRONG>is</STRONG> <STRONG>mod</STRONG> 2 ** 8;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Byte Type (2^8)
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>type</STRONG> <A NAME="24_7"><SPAN CLASS="definition">ByteArray</SPAN></A> <STRONG>is</STRONG> <STRONG>array</STRONG> (0 .. <A HREF="#15_2">uuid_size</A>-1) <STRONG>of</STRONG> <A HREF="#21_7">Byte</A>;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Byte Array for UUID data storage
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>type</STRONG> <A NAME="27_7"><SPAN CLASS="definition">VersionType</SPAN></A> <STRONG>is</STRONG> (
<A NAME="28_3"><SPAN CLASS="definition">Unknown</SPAN></A>,
<A NAME="29_3"><SPAN CLASS="definition">Time_Based</SPAN></A>,
<A NAME="30_3"><SPAN CLASS="definition">DCE_Security</SPAN></A>,
<A NAME="31_3"><SPAN CLASS="definition">Name_Based_MD5</SPAN></A>,
<A NAME="32_3"><SPAN CLASS="definition">Random_Number_Based</SPAN></A>,
<A NAME="33_3"><SPAN CLASS="definition">Name_Based_SHA1</SPAN></A>
);</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
The Version of the UUID
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>type</STRONG> <A NAME="37_7"><SPAN CLASS="definition">VariantType</SPAN></A> <STRONG>is</STRONG> (
<A NAME="38_3"><SPAN CLASS="definition">NCS</SPAN></A>,
<A NAME="39_3"><SPAN CLASS="definition">RFC_4122</SPAN></A>,
<A NAME="40_3"><SPAN CLASS="definition">Microsoft</SPAN></A>,
<A NAME="41_3"><SPAN CLASS="definition">Future</SPAN></A>
);</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
The UUID Variant
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>type</STRONG> <A NAME="46_7"><SPAN CLASS="definition">UUID</SPAN></A> <STRONG>is</STRONG> <STRONG>new</STRONG> Ada.Finalization.Controlled <STRONG>with</STRONG>
<STRONG>record</STRONG>
<A NAME="48_3"><SPAN CLASS="definition">data</SPAN></A>: <A HREF="#24_7">ByteArray</A>;
<STRONG>end</STRONG> <STRONG>record</STRONG>;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
The main type for the package
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>function</STRONG> <A NAME="52_11"><SPAN CLASS="definition">Is_Nil</SPAN></A>(This: <STRONG>in</STRONG> <A HREF="#46_7">UUID</A>) <STRONG>return</STRONG> Boolean;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Determine if UUID is NIL (All Zeros)
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>function</STRONG> <A NAME="55_11"><SPAN CLASS="definition">Get_Version</SPAN></A>(This: <STRONG>in</STRONG> <A HREF="#46_7">UUID</A>) <STRONG>return</STRONG> <A HREF="#27_7">VersionType</A>;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Get the UUID Version
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>function</STRONG> <A NAME="58_11"><SPAN CLASS="definition">Get_Variant</SPAN></A>(This: <STRONG>in</STRONG> <A HREF="#46_7">UUID</A>) <STRONG>return</STRONG> <A HREF="#37_7">VariantType</A>;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Get the UUID Variant
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>function</STRONG> <A NAME="61_11"><SPAN CLASS="definition"><SPAN CLASS="literal">&quot;=&quot;</SPAN></SPAN></A>(Left, Right: <STRONG>in</STRONG> <A HREF="#46_7">UUID</A>) <STRONG>return</STRONG> Boolean;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Test for equality between Left and Right
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>function</STRONG> <A NAME="64_11"><SPAN CLASS="definition">Get_Hash_Value</SPAN></A>(This: <STRONG>in</STRONG> <A HREF="#46_7">UUID</A>) <STRONG>return</STRONG> <A HREF="#18_10">HashType</A>;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Get the hash code for the UUID
</DIV>
</TD></TR>
</TABLE>
<HR>
</TD></TR>
<TR><TD>
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>function</STRONG> <A NAME="67_11"><SPAN CLASS="definition">To_String</SPAN></A>(This: <STRONG>in</STRONG> <A HREF="#46_7">UUID</A>) <STRONG>return</STRONG> String;</CODE></PRE>
</TD></TR>
<TR><TD>
<DIV>
Convert the UUID to a common string representation
</DIV>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD><HR></TD></TR>
<TR><TD CLASS="code">
<PRE><CODE><STRONG>private</STRONG>
<EM><SPAN CLASS="comment">-- Implementation-defined ...</SPAN></EM>
</CODE></PRE>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD COLSPAN=2 CLASS="odd">
<PRE><CODE><STRONG>end</STRONG> AdaID;</CODE></PRE>
</TD></TR>
</TABLE>
<!-- --><HR><TABLE WIDTH="100%" CLASS="footer" BORDER=0 CELLSPACING=0 CELLPADDING=5><TR><TD><FONT SIZE=-1><!-- -->Generated on 2012-01-20 at 11:19:19 by <A HREF="http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/" TARGET="_top">AdaBrowse 4.0.3</A>.</FONT></TD></TR></TABLE>
</BODY>
</HTML>

39
doc/index.html Normal file
View File

@ -0,0 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Unit Index</TITLE>
<META NAME="generator" CONTENT="AdaBrowse 4.0.3 http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/">
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<LINK REV="made" HREF="http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/">
<STYLE TYPE="text/css">
TABLE.title { background-color : #99CCFF }
TABLE.footer { background-color : #99CCFF }
TD.type { background-color : #CCEEFF }
TD.odd { background-color : #99CCFF }
TD.even { background-color : #CCEEFF }
TD.code { background-color : #EEEEEE }
SPAN.comment { color : red }
SPAN.literal { color : green }
SPAN.definition { color : purple }
H3.subtitle { background-color : #CCEEFF }
UL.index { list-style: none }
</STYLE>
<LINK REL="stylesheet" HREF="adabrowse.css" TYPE="text/css">
</HEAD>
<BODY BGCOLOR="#FFFFF4">
<TABLE WIDTH="100%" CLASS="title" BORDER=0 CELLSPACING=0 CELLPADDING=5><TR><TD><H2>Unit Index</H2></TD></TR></TABLE>
<!-- Generated by AdaBrowse 4.0.3 http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/ -->
</P>
<H3><A NAME="A">A</A></H3>
<P>
<CODE><A HREF="adaid.html" >AdaID</A></CODE><BR>
<CODE><A HREF="adaid-generate.html" >AdaID.Generate</A></CODE><BR>
</P>
<!-- --><HR><TABLE WIDTH="100%" CLASS="footer" BORDER=0 CELLSPACING=0 CELLPADDING=5><TR><TD><FONT SIZE=-1><!-- -->Generated on 2012-01-20 at 11:19:19 by <A HREF="http://home.tiscalinet.ch/t_wolf/tw/ada95/adabrowse/" TARGET="_top">AdaBrowse 4.0.3</A>.</FONT></TD></TR></TABLE>
</BODY>
</HTML>

View File

@ -1,25 +1,31 @@
-------------------------------------------------------------------------------
-- File: adaid-generate.ads
-- Description: UUID Generation
-- Author: Anthony Arnold
-- License: http://www.gnu.org/licenses/gpl.txt
-------------------------------------------------------------------------------
-- AdaID.Generate defines the functions required to generate UUIDs using
-- different standard methods.
package AdaID.Generate is
-- Exception for string parsing
Invalid_String : exception;
-- Thrown when invalid strings are passed to From_String
-- Set a UUID to Nil
procedure Nil(id : in out UUID);
-- Set a UUID to Nil
-- Generate a random UUID
procedure Random(id : in out UUID);
-- Generate a random UUID
-- Generate a UUID based on a name
procedure From_Name(namespace: in UUID; name: in String; id: in out UUID);
-- Generate a UUID based on a name
procedure From_String(str : in String; id : in out UUID);
-- Generate a UUID from a string.
-- This is not so much generation, but reconstruction
procedure From_String(str : in String; id : in out UUID);
end AdaID.Generate;

View File

@ -1,26 +1,29 @@
-------------------------------------------------------------------------------
-- File: adaid.ads
-- Description: A UUID type for Ada
-- Author: Anthony Arnold
-- License: http://www.gnu.org/licenses/gpl.txt
-------------------------------------------------------------------------------
with Ada.Finalization;
with Interfaces; use Interfaces; -- for Unsigned_n
-- AdaID defines the types and accessor/miscellaneous functions for
-- the UUID type.
package AdaID is
-- Size type is unsigned
subtype SizeType is Unsigned_32;
uuid_size: constant Integer := 16; -- This many bytes in a UUID
uuid_size: constant Integer := 16;
-- This many bytes in a UUID
--Hash Type
subtype HashType is SizeType; -- The 'hash' of a UUID
subtype HashType is Unsigned_32;
-- Represents a "Hash Code" of a UUID
type Byte is mod 2 ** 8;
-- Byte Type (2^8)
type Byte is mod 2 ** 8; -- 8-bit bytes
-- Byte Array for UUID data storage
type ByteArray is array (0 .. uuid_size-1) of Byte;
-- Byte Array for UUID data storage
-- Some UUID Enums
type VersionType is (
Unknown,
Time_Based,
@ -29,6 +32,7 @@ package AdaID is
Random_Number_Based,
Name_Based_SHA1
);
-- The Version of the UUID
type VariantType is (
NCS,
@ -36,33 +40,34 @@ package AdaID is
Microsoft,
Future
);
-- The UUID Variant
-- The main type for the package
type UUID is new Ada.Finalization.Controlled with
record
data: ByteArray;
end record;
-- The main type for the package
--Determine if UUID is NIL
function Is_Nil(This: in UUID) return Boolean;
--Determine if UUID is NIL (All Zeros)
--Get the UUID Version
function Get_Version(This: in UUID) return VersionType;
--Get the UUID Version
--Get the UUID Variant
function Get_Variant(This: in UUID) return VariantType;
--Get the UUID Variant
--Test for equality
function "="(Left, Right: in UUID) return Boolean;
--Test for equality between Left and Right
--Get the hash value for the UUID
function Get_Hash_Value(This: in UUID) return HashType;
--Get the hash code for the UUID
--Convert the UUID to a string
function To_String(This: in UUID) return String;
--Convert the UUID to a common string representation
private
--Default "constructor", initializes to NIL
overriding procedure Initialize (This: in out UUID);
--Default "constructor", initializes to NIL
end AdaID;

1
lib/.gitignore vendored
View File

@ -1 +1,2 @@
*.a
*.so*