SerializeCode (クラス)
public abstract final SerializeCode
パッケージ: CURL.IO.SERIALIZE

Curl のシリアル化コードです。

説明

このクラスは、Curl シリアル化ストリームで使用されるサポートされているコード全ての定義を含みます。0 (SerializeCode.end-of-stream) から SerializeCode.max の範囲にあるコードの値です。全ての中間値が必ずしも使用されるわけではありません。
これらのコードは、SerializeOutputStreamSerializeInputStream のメソッドの既定の実装で使用されます。必要であれば、サブクラスは全く異なるプロトコルを自由に使用できます。
それぞれのコードの詳細はドキュメントを参照してください。
導入: バージョン 6.0

クラス変数と定数
bool:シリアル化された bool 値用のコードです。
public constant SerializeCode.bool:byte =27
byte-array:シリアル化された ByteArray インスタンス用のコードです。
public constant SerializeCode.byte-array:byte =11
byte-vec:シリアル化された ByteVec インスタンス用のコードです。
public constant SerializeCode.byte-vec:byte =10
char:シリアル化された char 値用のコードです。
public constant SerializeCode.char:byte =26
char16:シリアル化された char16 値用のコードです。
public constant SerializeCode.char16:byte =25
char8:シリアル化された char8 値用のコードです。
public constant SerializeCode.char8:byte =24
class-lookup:Cシリアル化された class メンバー用のコードです。
public constant SerializeCode.class-lookup:byte =39
clear-temporary:一時的に蓄えられた値をクリアするコードです。
public constant SerializeCode.clear-temporary:byte =3
compact-fast-array:シリアル化された FastArray 値用のコードです。
public constant SerializeCode.compact-fast-array:byte =45
double:シリアル化された double 値用のコードです。
public constant SerializeCode.double:byte =29
double-distance:シリアル化された Distance 値用のコードです。
public constant SerializeCode.double-distance:byte =31
end-of-stream:シリアル化されたストリームの終わりを示すコードです。
public constant SerializeCode.end-of-stream:byte =0
enum:シリアル化された enum 値用のコードです。
public constant SerializeCode.enum:byte =41
fast-array:シリアル化された FastArray 値(古いプロトコル)用のコードです。
public constant SerializeCode.fast-array:byte =42
float:シリアル化された float 値用のコードです。
public constant SerializeCode.float:byte =28
float-distance:シリアル化された FloatDistance 値用のコードです。
public constant SerializeCode.float-distance:byte =30
instance:シリアル化された class インスタンス用のコードです。
public constant SerializeCode.instance:byte =43
int:シリアル化された int 値用のコードです。
public constant SerializeCode.int:byte =21
int16:シリアル化された int16 値用のコードです。
public constant SerializeCode.int16:byte =19
int64:シリアル化された int64 値用のコードです。
public constant SerializeCode.int64:byte =23
int8:シリアル化された int8 値用のコードです。
public constant SerializeCode.int8:byte =17
interned-known:既知のユーザーの値用のコードです。
public constant SerializeCode.interned-known:byte =4
interned-permanent:蓄えられた値用のコードです。
public constant SerializeCode.interned-permanent:byte =6
interned-standard:組み込まれた値用のコードです。
public constant SerializeCode.interned-standard:byte =5
interned-temporary:一時的に蓄えられた用のコードです。
public constant SerializeCode.interned-temporary:byte =7
make-permanent:シリアル化ストリーム内に蓄えられた値用のコードです。
public constant SerializeCode.make-permanent:byte =2
max:最も高いシリアル化コードの値です。
public constant SerializeCode.max:byte =48
next-unshared:次の値を蓄えることができないようにするコードです。
public constant SerializeCode.next-unshared:byte =47
null-value:シリアル化された null 値用のコードです。
public constant SerializeCode.null-value:byte =46
package-import:シリアル化された Package 値用のコードです。
public constant SerializeCode.package-import:byte =32
package-lookup:シリアル化された Package メンバー用のコードです。
public constant SerializeCode.package-lookup:byte =33
proc-type:シリアル化された proc 型用のコードです。
public constant SerializeCode.proc-type:byte =48
quantity:シリアル化された quantity 値用のコードです。
public constant SerializeCode.quantity:byte =40
string:シリアル化された String インスタンス用のコードです。
public constant SerializeCode.string:byte =8
type-parameterized:シリアル化された ParameterizedType のコードです。
public constant SerializeCode.type-parameterized:byte =36
type-quantity:シリアル化された quantity 型用のコードです。
public constant SerializeCode.type-quantity:byte =35
type-sharp:シリアル化された # 型用のコードです。
public constant SerializeCode.type-sharp:byte =38
uint:シリアル化された uint 値用のコードです。
public constant SerializeCode.uint:byte =20
uint16:シリアル化された uint16 値用のコードです。
public constant SerializeCode.uint16:byte =18
uint64:シリアル化された uint64 値用のコードです。
public constant SerializeCode.uint64:byte =22
uint8:シリアル化された uint8 値用のコードです。
public constant SerializeCode.uint8:byte =16
url:シリアル化された Url インスタンス用のコードです。
public constant SerializeCode.url:byte =9
value-class:シリアル化された value-class インスタンス用のコードです。
public constant SerializeCode.value-class:byte =44

メソッド
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize





クラス変数と定数の詳細
bool (クラス定数)
public constant SerializeCode.bool:byte =27

シリアル化された bool 値用のコードです。

説明

全ての bool 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-bool を使用して書き出される値が続きます。
導入: バージョン 6.0


byte-array (クラス定数)
public constant SerializeCode.byte-array:byte =11

シリアル化された ByteArray インスタンス用のコードです。

説明

このコードは、全ての ByteArray インスタンスをシリアル化するために使用されます。他の Array-of 型は SerializeCode.instance を使用して Object としてシリアル化されます。
そのコードの後には、marshal-out-uint-compressed> を使用してエンコードされた size が続き、その後に配列内のバイトが順に続きます。
導入: バージョン 6.0


byte-vec (クラス定数)
public constant SerializeCode.byte-vec:byte =10

シリアル化された ByteVec インスタンス用のコードです。

説明

このコードは、全ての ByteVec インスタンスをシリアル化するのに使用されます。他の FastArray-of 型は、SerializeCode.fast-arraySerializeCode.compact-fast-array を使用してシリアル化されます。
そのコードの後には、marshal-out-uint-compressed を使用してエンコードされた max-sizesize が続き、その後に配列内のバイトが順に続きます。
導入: バージョン 6.0


char (クラス定数)
public constant SerializeCode.char:byte =26

シリアル化された char 値用のコードです。

説明

全ての char 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-char-compressed を使用して書き出される値が続きます。これは、ASCII 文字が単一バイトを使用して書き出され、'€' から '㿿' の範囲にある文字は 2 バイトを必要とし、他の全ての文字では 3 バイトが必要となることを意味しています。
導入: バージョン 6.0


char16 (クラス定数)
public constant SerializeCode.char16:byte =25

シリアル化された char16 値用のコードです。

説明

全ての char16 値をシリアル化するために使用されます。
そのコードの後に、marshal-out-uint16 を使用して書き出された値が続きます。
導入: バージョン 6.0


char8 (クラス定数)
public constant SerializeCode.char8:byte =24

シリアル化された char8 値用のコードです。

説明

全ての char8 値をシリアル化するために使用されます。
そのコードの後に、marshal-out-uint8 を使用して書き出された値が続きます。
導入: バージョン 6.0


class-lookup (クラス定数)
public constant SerializeCode.class-lookup:byte =39

Cシリアル化された class メンバー用のコードです。

説明

パブリックなクラス プロシージャをシリアル化するために使用されます。
そのコードの後に、クラスとプロシージャの名前が続き、両方共 SerializeOutputStream.write-one を使用してシリアル化されます。
導入: バージョン 6.0


clear-temporary (クラス定数)
public constant SerializeCode.clear-temporary:byte =3

一時的に蓄えられた値をクリアするコードです。

説明

リーダーに、一時的に蓄えられている値のリストをクリアするよう通知し、intern のインデックスを 0 にリセットするよう読み取り側に指示します。
これは SerializeOutputStream.clear-shared-object-table によって書き込まれます。
導入: バージョン 6.0


compact-fast-array (クラス定数)
public constant SerializeCode.compact-fast-array:byte =45

シリアル化された FastArray 値用のコードです。

説明

SerializeProtocol version-6-0 下で、FastArray-of 型のインスタンスをシリアル化するために使用されます。
代わりに、{FastArray-of byte} (別名 FastArray-of uint8 または ByteVec) が SerializeCode.byte-vec を使用してシリアル化されることに注意してください。
プロトコル version-4-0 下では、代わりに SerializeCode.fast-array が使用されます。
そのコードの後には、SerializeOutputStream.write-one を使用してシリアル化されたインスタンスの型が続きます。その後には、marshal-out-uint-compressed を使用して書き出される max-size が続きます。そのあと、配列の各要素が、宣言された配列の element-type を使用する SerializeOutputStream.write-one-compact に等しいものを使用して書き出されます。
導入: バージョン 6.0


double (クラス定数)
public constant SerializeCode.double:byte =29

シリアル化された double 値用のコードです。

説明

全ての double 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-double を使用して書き出される値が続きます。
導入: バージョン 6.0


double-distance (クラス定数)
public constant SerializeCode.double-distance:byte =31

シリアル化された Distance 値用のコードです。

説明

全ての Distance 値をシリアル化するために使用されます。
そのコードの後には、1m ごとに分けて書き出された値が続き、marshal-out-double を使用して結果が書かれます。
導入: バージョン 6.0


end-of-stream (クラス定数)
public constant SerializeCode.end-of-stream:byte =0

シリアル化されたストリームの終わりを示すコードです。

説明

このコードは、データの最後を示すために SerializeOutputStream.close によって基本的なバイト ストリームに書き込まれます。SerializeInputStream.read-one によって読み込まれた場合、(null 、 true) が返されます。
導入: バージョン 6.0


enum (クラス定数)
public constant SerializeCode.enum:byte =41

シリアル化された enum 値用のコードです。

説明

Curl の列挙型のインスタンスをシリアル化するために使用されます。
そのコードの後には、SerializeOutputStream.write-one を使用してシリアル化された列挙型が続き、更にSerializeOutputStream.write-one を使用して書かれた値のインデックスが続きます。そして、それは SerializeCode.int を使用します。
導入: バージョン 6.0


fast-array (クラス定数)
public constant SerializeCode.fast-array:byte =42

シリアル化された FastArray 値(古いプロトコル)用のコードです。

説明

SerializeProtocol version-4-0 下で、FastArray-of 型のインスタンスをシリアル化するために使用されます。
代わりに、{FastArray-of byte} (別名 FastArray-of uint8 または ByteVec) が SerializeCode.byte-vec を使用してシリアル化されることに注意してください。
プロトコル version-6-0 下では、代わりに SerializeCode.compact-fast-array が使用されます。
そのコードの後には、SerializeOutputStream.write-one を使用して書き込まれたその配列の型と配列の max-size と各要素が続きます。
導入: バージョン 6.0


float (クラス定数)
public constant SerializeCode.float:byte =28

シリアル化された float 値用のコードです。

説明

全ての float 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-float を使用して書き出される値が続きます。
導入: バージョン 6.0


float-distance (クラス定数)
public constant SerializeCode.float-distance:byte =30

シリアル化された FloatDistance 値用のコードです。

説明

全ての FloatDistance 値をシリアル化するために使用されます。
そのコードの後には、1f(m) ごとに分けて書き出された値が続き、marshal-out-float を使用して結果が書かれます。
導入: バージョン 6.0


instance (クラス定数)
public constant SerializeCode.instance:byte =43

シリアル化された class インスタンス用のコードです。

説明

他のコードで操作されない Object のサブタイプのインスタンスをシリアル化するために使用されます。KindOfUnits のインスタンスをシリアル化するためにも使用されますが、他のValueクラス インスタンスに対しては使用されません。代わりに、SerializeCode.value-class を使用してシリアル化されます。
そのコードの後には、SerializeOutputStream.write-one を使用してシリアル化されたインスタンスの型が続き、更にそのインスタンスの object-serialize メソッドを呼び出した結果が続きます。object-serialize メソッドが明白に実装されていた場合、勝手な出力がなされるかもしれません。暗黙的に生成された場合、SerializeOutputStream.write-class-version を使用してクラスのシリアル化バージョンをまず書き出します。そのクラス バージョンの既定は 0 ですが、define-serialization シンタックスを使用して異なる値が設定されるかもしれません。次にシリアル化可能な各スーパークラスは、継承された順番でその object-serialize メソッドを使用してシリアル化されます。最後に、各 non-transient フィールドは write-one を使用して宣言された順番でシリアル化されます。
導入: バージョン 6.0


int (クラス定数)
public constant SerializeCode.int:byte =21

シリアル化された int 値用のコードです。

説明

全ての int 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-int-compressed を使用して書き出される値が続きます。
導入: バージョン 6.0


int16 (クラス定数)
public constant SerializeCode.int16:byte =19

シリアル化された int16 値用のコードです。

説明

全ての int16 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-int16 を使用して書き出される値が続きます。
導入: バージョン 6.0


int64 (クラス定数)
public constant SerializeCode.int64:byte =23

シリアル化された int64 値用のコードです。

説明

全ての int64 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-int64-compressed を使用して書き出される値が続きます。
導入: バージョン 6.0


int8 (クラス定数)
public constant SerializeCode.int8:byte =17

シリアル化された int8 値用のコードです。

説明

全ての int8 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-int8 を使用して書き出される値が続きます。
導入: バージョン 6.0


interned-known (クラス定数)
public constant SerializeCode.interned-known:byte =4

既知のユーザーの値用のコードです。

説明

このコードは、既知の値のユーザー定義リストから値をシリアル化するのに使用されます。その値は、SerializeOutputStreamSerializeInputStream を作成する時に指定されなければなりません。
そのコードの後に、marshal-out-uint-compressed を使用して書き出された設定値の既知の値の配列におけるインデックスが続きます。
このコードは、SerializeProtocolのversion-4-0 で使用されません。
導入: バージョン 6.0


interned-permanent (クラス定数)
public constant SerializeCode.interned-permanent:byte =6

蓄えられた値用のコードです。

説明

このコードは、SerializeCode.make-permanent を使用して蓄えられていた値をシリアル化するのに使用されます。
そのコードの後には、SerializeCode.make-permanent によって関連付けられていた値のインデックスが続きます。
導入: バージョン 6.0


interned-standard (クラス定数)
public constant SerializeCode.interned-standard:byte =5

組み込まれた値用のコードです。

説明

このコードは、組み込みのstandard-serialization-valuesリストから値をシリアル化するのに使用されます。
そのコードの後に、marshal-out-uint-compressed を使用して書き出された設定値のテーブルにおけるインデックスが続きます。
導入: バージョン 6.0


interned-temporary (クラス定数)
public constant SerializeCode.interned-temporary:byte =7

一時的に蓄えられた用のコードです。

説明

このコードは、プロシージャ やクラス インスタンスと、最後に SerializeCode.clear-temporary が使用されてから前もってシリアル化された KindOfUnits インスタンスをシリアル化するのに使用されます。
新しいプロシージャやクラス インスタンス、KindOfUnits 値がシリアル化される度に、整数のインデックスが増え、値と関連付けられます。最初は 0 、その次は 1 など。SerializeCode.make-permanent を使用して保存される値もそのインデックスが増えます。
蓄えられた値のテーブルはクリアされ、インデックスは SerializeCode.clear-temporary によってリセットされます。
導入: バージョン 6.0


make-permanent (クラス定数)
public constant SerializeCode.make-permanent:byte =2

シリアル化ストリーム内に蓄えられた値用のコードです。

説明

このコードは、ストリームが開かれている限りそれに続く値を蓄えておくよう読み取り側に伝えます。その値は、0 で始まる符合なし整数によってインデックスがつけられ、このコードを使用して蓄えられた各値で増えていきます。
SerializeOutputStream は、全てのプロシージャと TypePackageParameterizedTypeTemplate 型のオブジェクトを蓄えるためにこれを使用します。
導入: バージョン 6.0


max (クラス定数)
public constant SerializeCode.max:byte =48

最も高いシリアル化コードの値です。

導入: バージョン 6.0


next-unshared (クラス定数)
public constant SerializeCode.next-unshared:byte =47

次の値を蓄えることができないようにするコードです。

説明

次のポインタの値が、一時的に蓄えるテーブルへ追加されるのを防ぐために、SerializeOutputStream.do-not-share-next によって作成されます。
このコードは、SerializeProtocolの version-4-0 で使用されません。
導入: バージョン 6.0


null-value (クラス定数)
public constant SerializeCode.null-value:byte =46

シリアル化された null 値用のコードです。

説明

SerializeProtocol version-6-0 以降を使用した時に、シリアル化された null 値に使用されます。
プロトコル version-4-0 を使用した時に、null 値は standard-serialization-values テーブルを使用して書き出されます。
導入: バージョン 6.0


package-import (クラス定数)
public constant SerializeCode.package-import:byte =32

シリアル化された Package 値用のコードです。

説明

全てのPackage 値をシリアル化するために使用されます。 パッケージ自身はシリアル化されません。名前とその他のオプション情報が、逆シリアル化された時にパッケージがインポートされるようにするために書き出されます。
書き出す時にパッケージが get-current-package と同じであれば、そのコードの後に write-one を使用して書き出された 2 つの null 値が続きます。他のパッケージに関しては、そのコードの後に SerializeOutputStream.get-package-locator によって返されたパッケージの name とオプションの文字列が続きます。それらは両方共 write-one を使用して書き出されます。
既定では、一つのパッケージ名だけが書き出されるので、組み込まれたパッケージとSerializeInputStream を初期化する時に提供されるマニフェストにリストされたパッケージでのみ動作します。
導入: バージョン 6.0


package-lookup (クラス定数)
public constant SerializeCode.package-lookup:byte =33

シリアル化された Package メンバー用のコードです。

説明

Package のトップレベルのメンバーをシリアル化するのに使用されます。これは、パブリックなプロシージャ、型、ParameterizedTypeTemplate インスタンスをシリアル化するのに使用されます。
そのコードの後に、パッケージと文字列のメンバー名が続きます。両方共、write-one を使用して書き出されます。
導入: バージョン 6.0


proc-type (クラス定数)
public constant SerializeCode.proc-type:byte =48

シリアル化された proc 型用のコードです。

説明

SerializeProtocol version-6-0 以降で、プロシージャ型のインスタンス(ProcType を参照してください)をシリアル化するために使用されます。
そのコードの後に、次の値のビット マスクを含む 1 バイトが続きます。:
プロシージャの型がマスク ビット 0 で指定された一つもしくは複数の戻り値をとる場合、戻り値の型の数が marshal-out-uint-compressed を使用して書き込まれ、順番に各型が続きます。 プロシージャの型がマスク ビット 1 で指定された一つもしくは複数の位置引数をとる場合、位置引数の数が marshal-out-uint-compressedを使用して書き込まれ、順番に各型が続きます。 プロシージャの型がマスク ビット 2 で指定された一つもしくは複数のキーワード引数をとる場合、キーワード引数の数が marshal-out-uint-compressedを使用して書き込まれ、ProcType.keyword-arg-name で指定された順番でキーワード名と型が続きます。 プロシージャの型がマスク ビット 4 で指定された残余引数をとる場合、その型が書き込まれます。
導入: バージョン 6.0


quantity (クラス定数)
public constant SerializeCode.quantity:byte =40

シリアル化された quantity 値用のコードです。

説明

SerializeCode.float-distanceSerializeCode.double-distance を使用して特別に操作されるDistanceFloatDistance 以外の型の数量をシリアル化するために使用されます。
そのコードの後に、SerializeOutputStream.write-one を使用してシリアル化される数値の型が続きます。
導入: バージョン 6.0


string (クラス定数)
public constant SerializeCode.string:byte =8

シリアル化された String インスタンス用のコードです。

説明

このコードは、全ての String インスタンスをシリアル化するのに使用されます。
そのコードの後には、marshal-out-uint-compressed を使用して順にエンコードされたString のサイズと各文字が続きます。
これは、ASCII 文字のみ含む文字列で書く文字が1バイトとして書き出されることを意味しています。
導入: バージョン 6.0


type-parameterized (クラス定数)
public constant SerializeCode.type-parameterized:byte =36

シリアル化された ParameterizedType のコードです。

説明

ParameterizedType インスタンスをシリアル化するために使用されます。
そのコードの後に、SerializeOutputStream.write-one を使用してシリアル化された ParameterizedType.template が続きます。その型の位置引数とキーワード引数は Arguments オブジェクトにコピーされ、write-one を使用してシリアル化されます。
導入: バージョン 6.0


type-quantity (クラス定数)
public constant SerializeCode.type-quantity:byte =35

シリアル化された quantity 型用のコードです。

説明

数量の型をシリアル化するために使用されます。
そのコードの後には、基本の表現型が続きます。その型は float または doubleのどちらかと Type.kind-of-units でなければなりません。両方共 write-one を使用して書き出されます。
floatdoublestandard-serialization-values にあるため、常に SerializeCode.interned-standard を書き出すことでシリアル化され、その後に 28 または 29 が続きます。
導入: バージョン 6.0


type-sharp (クラス定数)
public constant SerializeCode.type-sharp:byte =38

シリアル化された # 型用のコードです。

説明

# 型をシリアル化するために使用されます。すなわち、non-null-variant の型が null ではなくそれ自身の型とは異なります。
そのような型に関して、コードの後に SerializeOutputStream.write-one を使用してシリアル化される non-null-variant が続きます。
導入: バージョン 6.0


uint (クラス定数)
public constant SerializeCode.uint:byte =20

シリアル化された uint 値用のコードです。

説明

全ての uint 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-uint-compressed を使用して書き出される値が続きます。
注意:このコードとuint 型自身は Curl の 6.0 API で初めて導入されたので、4.0 以前のバージョン又は 5.0 で SerializeInputStream を使用して読み込むことができません。
導入: バージョン 6.0


uint16 (クラス定数)
public constant SerializeCode.uint16:byte =18

シリアル化された uint16 値用のコードです。

説明

全ての uint16 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-uint16 を使用して書き出される値が続きます。
導入: バージョン 6.0


uint64 (クラス定数)
public constant SerializeCode.uint64:byte =22

シリアル化された uint64 値用のコードです。

説明

全ての uint64 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-uint64-compressed を使用して書き出される値が続きます。
注意:このコードとuint64 型自身は Curl の 6.0 API で初めて導入されたので、4.0 以前のバージョン又は 5.0 で SerializeInputStream を使用して読み込むことができません。
導入: バージョン 6.0


uint8 (クラス定数)
public constant SerializeCode.uint8:byte =16

シリアル化された uint8 値用のコードです。

説明

全ての uint8 (別名 byte) 値をシリアル化するために使用されます。
そのコードの後には、marshal-out-uint8 を使用して書き出される値が続きます。
導入: バージョン 6.0


url (クラス定数)
public constant SerializeCode.url:byte =9

シリアル化された Url インスタンス用のコードです。

説明

このコードは、全ての Url インスタンスをシリアル化するのに使用されます。
コードの後には、SerializeCode.string エンコーディングを使用してエンコードされた Url.name が続きます。
導入: バージョン 6.0


value-class (クラス定数)
public constant SerializeCode.value-class:byte =44

シリアル化された value-class インスタンス用のコードです。

説明

KindOfUnits 以外の value クラスのインスタンスをシリアル化するために使用されます。
そのコードの後には、SerializeOutputStream.write-one を使用してシリアル化されたインスタンスの型が続き、更にそのインスタンスの object-serialize メソッドを呼び出した結果が続きます。
導入: バージョン 6.0




メソッド詳細