rfc.uuid
- UUID ¶RFC9562で定義されたUUIDを実装しています。
UUIDバージョン1、4、6、7を生成する機能、及びUUIDの文字列表記をパーズしたり バイナリから文字列表記を生成する機能が提供されます。
{rfc.uuid
}
UUIDクラスです。UUIDインスタンスは変更不可なオブジェクトです。
{rfc.uuid
}
UUID uuidの「生の」値を、16要素のu8vector
として返します。
返されたベクタを変更してはいけません。
{rfc.uuid
}
uuidのバージョン番号を返します。
{rfc.uuid
}
UUID同士を比較したりハッシュ値を取れる比較器です。
比較器については基本的な比較器参照。
註: 二つのUUIDが等しいかどうかはequal?
で検査できます。
{rfc.uuid
}
UUIDの文字列表現をパーズし、UUIDインスタンスにして返します。
文字列が有効なUUID表現でない場合、if-invalidキーワード引数が
省略されるか:error
であればエラーが投げられ、
if-invalidが#f
であれば#f
が返されます。
典型的なXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
という形式に加え、
urn:uuid:
プレフィクスがついた形、前後がカーリーブレイスで囲まれた形、
そしてハイフンを持たない形が認識されます。
{rfc.uuid
}
uuidの文字列表現をXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
形式で
portに書き出します。portが省略された場合は現在の出力ポートが使われます。
{rfc.uuid
}
uuidの文字列表現をXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
形式で
返します。
{rfc.uuid
}
UUIDを生成するのに乱数発生器を使います。
デフォルトでは、内部的に乱数源を作って乱数化したものを使いますが、
このパラメータをparameterize
することで独自の乱数源を使うことができます。
パラメータの値はSRFI-27の規定する乱数源でなければなりません
(srfi.27
- ランダムビットのソース参照)。
このパラメータの値は、make-uuid*-generator
でUUIDのジェネレータが
作られる時に参照され、その乱数源がジェネレータの中に保持されます。
このパラメータの値の変更は、既に作られたジェネレータには影響を与えません。
{rfc.uuid
}
それぞれ、バージョン1およびバージョン6アルゴリズム(タイムスタンプとノードID)による
UUIDのジェネレータを生成して返します。二つのバージョンの違いは、
バージョン1ではタイムスタンプをいくつかに分けたうちの下位ビットから順に格納する
のに対し、バージョン6では上位ビットから格納することです。
これにより、近い時間に作られたv6 uuidはソートした時に固まることになり、
データベースのインデックスとして使う場合にv1より有利になります。
(但し、完全に時間的に整列可能なuuidが必要な場合はv7 uuidを使ってください)。
省略可能なnode-id引数はノードIDを指定する48ビットの正確な整数でなければ なりません (IEEE802 MACアドレスが通常使われます)。 省略された場合は、プロセス内でひとつのランダムノードIDを生成して使います (この場合、生成されるノードIDはマルチキャストビットが立てられるので、 現実に存在するMACアドレスとかぶることはありません)。
これらの手続きで作られるジェネレータはスレッドセーフです。
{rfc.uuid
}
バージョン4アルゴリズム(乱数)によるUUIDを生成するジェネレータを作って返します。
この手続きで作られるジェネレータはスレッドセーフです。
{rfc.uuid
}
バージョン7アルゴリズム(時間順列可能)でuuidを作るジェネレータを作って返します。
uuidは、タイムスタンプ部分と、時間的に単調増加するランダムビット部分からなります。
全体として、uuidをソートすると生成順になります。
ランダムビット部分はUUID RFCの仕様では12ビットのrand_a
フィールドと
62bitのrand_b
フィールドに分かれています。
RFCではどのようにそれらを埋めるかは具体的に指定されていません。
Gaucheの実装では、それを74ビットの非負整数とみなし、
次の戦略を取ります。
省略可能なincrement-bits引数は正確な正の整数でなければなりません。 デフォルトの値は64です。極めて短い時間内に大量のUUIDを作りたい場合は、 小さな数を指定するのが良いでしょう。
この手続きで作られるジェネレータはスレッドセーフです。
{rfc.uuid
}
Deprecated.
UUID生成に使われる乱数源をカスタマイズするには
uuid-random-source
パラメータを使ってください。
{rfc.uuid
}
簡便のために、あらかじめ作られているUUIDのジェネレータです。
これらのジェネレータはライブラリのロード時に
対応するmake-uuid*-generator
で作られるので、
デフォルトの乱数源を使います。
これらのジェネレータはスレッドセーフです。
{rfc.uuid
}
全てのビットが0であるnil UUIDを返します。