Next: rfc.zlib
- zlib圧縮ライブラリ, Previous: rfc.uri
- URIの解析と作成, Up: ライブラリモジュール - ユーティリティ [Contents][Index]
rfc.uuid
- UUIDRFC4122で定義された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を生成するのに乱数発生器を使います。
デフォルトでは、内部的に乱数源を作って乱数化したものを使いますが、
このパラメータをparameterize
することで独自の乱数源を使うことができます。
パラメータの値はSRFI-27の規定する乱数源でなければなりません
(srfi.27
- ランダムビットのソース参照)。
{rfc.uuid}
Deprecated.
UUID生成に使われる乱数源をカスタマイズするには
uuid-random-source
パラメータを使ってください。
{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ビットの非負整数とみなし。
次の戦略を取ります。
「タイムスタンプが進むまで待つ」のは、1msあたり大量のuuid (およそ2000個以上) を作りたい場合に足を引っ張るかもしれません。もしそれが問題になるなら、 v7 uuidを効率よくバッチ生成するAPIを用意します。
{rfc.uuid} 全てのビットが0であるnil UUIDを返します。
{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
形式で
返します。
Next: rfc.zlib
- zlib圧縮ライブラリ, Previous: rfc.uri
- URIの解析と作成, Up: ライブラリモジュール - ユーティリティ [Contents][Index]