Newer
Older
sample / sal / docs / serializable.html
Nomura Kei on 26 Aug 2022 12 KB OLD DLANG DATAS
<html><head>
	<META http-equiv="content-type" content="text/html; charset=utf-8">
	<title>sal.io.serializable</title>
	</head><body>
	<h1>sal.io.serializable</h1>
	<!-- Generated by Ddoc from src/sal/io/serializable.d -->
<br><br>
<dl><dt><big>interface <u>Serializable</u>;
</big></dt>
<dd>クラスがシリアライズ可能であることを示すインタフェース.
 
<br><br>

</dd>
<dt><big>abstract interface <u>Externalizable</u>: sal.io.serializable.Serializable;
</big></dt>
<dd>オブジェクトを外部に出力、または外部から入力可能とするインタフェース.
 
<br><br>

<dl><dt><big>abstract void <u>readExternal</u>(ObjectInput <i>input</i>);
</big></dt>
<dd>入力ストリームより、オブジェクトを復元します.
 本インタフェースを使用するクラスは、
 引数なしのコンストラクタを呼び出した後、
 本メソッドを呼び出し、オブジェクトの復元を試みます.
<br><br>
<b>Params:</b><br>
<table><tr><td>ObjectInput <i>input</i></td>
<td>入力ストリーム</td></tr>
</table><br>

</dd>
<dt><big>abstract const void <u>writeExternal</u>(ObjectOutput <i>output</i>);
</big></dt>
<dd>オブジェクトを出力ストリームへ書き出します.
 本メソッドの呼び出しにより、クラス内部の状態が変更されてはなりません.
<br><br>
<b>Params:</b><br>
<table><tr><td>ObjectOutput <i>output</i></td>
<td>出力ストリーム</td></tr>
</table><br>

</dd>
</dl>
</dd>
<dt><big>class <u>ObjectInput</u>;
</big></dt>
<dd>オブジェクト入力ストリーム.
 
<br><br>

<dl><dt><big>this(in ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i> = endian);
</big></dt>
<dd>指定されたエンディアンの入力ストリームを構築します.
<br><br>
<b>Params:</b><br>
<table><tr><td>ubyte[] <i>buff</i></td>
<td>バッファ</td></tr>
<tr><td>int* <i>offset</i></td>
<td>オフセット</td></tr>
<tr><td>Endian <i>e</i></td>
<td>エンディアン</td></tr>
</table><br>

</dd>
<dt><big>T <u>read</u>(T)(ref T <i>t</i>);
</big></dt>
<dd>指定された型で値を読み取ります.				<br><br>
 型として、次の値を指定することができます.	<br><br>
 <ul>  <li>プリミティブな型</li>
   <li>struct 型</li>
   <li>Externalizable を継承したクラス</li>
 </ul><br><br>
 型の中に動的配列が含まれる場合、事前にサイズを決める必要があります.
 <pre class="d_code">struct Sample {
     int     magic;
     ubyte[] data;
 }
 Sample s;
 s.data = new ubyte[40];
 s      = input.<u>read</u>(s);	// input is ObjectInput instance
 </pre>
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>読み出す型</td></tr>
</table><br>
<b>Return:</b><br>
値
	 
<br><br>

</dd>
<dt><big>int <u>getNextOffset</u>();
</big></dt>
<dd>次のバッファのオフセット位置を取得します.
<br><br>
<b>Return:</b><br>
次のバッファのオフセット位置
	 
<br><br>

</dd>
</dl>
</dd>
<dt><big>class <u>ObjectOutput</u>;
</big></dt>
<dd>オブジェクト出力ストリーム.
 
<br><br>

<dl><dt><big>this(ref ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i> = endian);
</big></dt>
<dd>指定されたエンディアンの入力ストリームを構築します.
 バッファが足りない場合、自動的にバッファサイズが拡張されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>ubyte[] <i>buff</i></td>
<td>バッファ</td></tr>
<tr><td>int* <i>offset</i></td>
<td>オフセット</td></tr>
<tr><td>Endian <i>e</i></td>
<td>エンディアン</td></tr>
</table><br>

</dd>
<dt><big>void <u>write</u>(T)(in T <i>t</i>);
</big></dt>
<dd>指定された値をストリームに書き出します.		<br><br>
 型として、次の値を指定することができます.	<br><br>
 <ul>  <li>プリミティブな型</li>
   <li>struct 型</li>
   <li>Externalizable を継承したクラス</li>
 </ul>
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>書き出す値</td></tr>
</table><br>

</dd>
<dt><big>int <u>getNextOffset</u>();
</big></dt>
<dd>次のバッファのオフセット位置を取得します.
<br><br>
<b>Return:</b><br>
次のバッファのオフセット位置
	 
<br><br>

</dd>
<dt><big>ubyte[] <u>getBytes</u>();
</big></dt>
<dd>ストリームバイトバッファを取得します.
<br><br>
<b>Return:</b><br>
バイトバッファ
	 
<br><br>

</dd>
</dl>
</dd>
<dt><big>ubyte[] <u>toBytes</u>(T)(in T <i>t</i>, in Endian <i>e</i> = endian);
</big></dt>
<dd>指定された値を ubyte[] に変換します.
 値は指定されたエンディアンに従い、シリアライズ化されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>値</td></tr>
<tr><td>e</td>
<td>エンディアン (Endian.BigEndian/Endian.LittleEndian)</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>ubyte[] <u>toBytes</u>(T)(ref ubyte[] <i>buff</i>, ref int* <i>offset</i>, in T <i>t</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたバイトバッファを指定された型の値に変換します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換するスカラ型</td></tr>
<tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>T <u>toValue</u>(T)(ref T <i>t</i>, in ubyte[] <i>buff</i>, in Endian <i>e</i> = endian);
</big></dt>
<dd>指定された buff を指定された型に変換します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>buff</td>
<td>バッファ</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>T <u>toValue</u>(T)(ref T <i>t</i>, in ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたバイトバッファを指定された型の値に変換します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換するスカラ型</td></tr>
<tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>size_t <u>getSize</u>(T)(in T <i>t</i>);
</big></dt>
<dd>指定された型のシリアライズ化された際のサイズを取得します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>型オブジェクト</td></tr>
</table><br>
<b>Return:</b><br>
サイズ
 
<br><br>

</dd>
<dt><big>ubyte[] <u>toScalarBytes</u>(T)(ref ubyte[] <i>buff</i>, ref int* <i>offset</i>, in T <i>t</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたスカラ型の値を ubyte[] に変換します.
 指定されたバッファに収まらない場合、バッファが拡張されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>ubyte[] <u>toStructBytes</u>(T)(ref ubyte[] <i>buff</i>, ref int* <i>offset</i>, in T <i>t</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたstruct型の値を ubyte[] に変換します.
 指定されたバッファに収まらない場合、バッファが拡張されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>ubyte[] <u>toArrayBytes</u>(T)(ref ubyte[] <i>buff</i>, ref int* <i>offset</i>, in T <i>t</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定された配列型の値を ubyte[] に変換します.
 指定されたバッファに収まらない場合、バッファが拡張されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>ubyte[] <u>toExternalizableBytes</u>(T)(ref ubyte[] <i>buff</i>, ref int* <i>offset</i>, in T <i>t</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定された Externalizableを実装したクラスを ubyte[] に変換します.
 指定されたバッファに収まらない場合、バッファが拡張されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>ubyte[] <u>toUnionBytes</u>(T)(ref ubyte[] <i>buff</i>, ref int* <i>offset</i>, in T <i>t</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたunion型の値を ubyte[] に変換します.
 もっともサイズの大きい型にて変換されます.
 指定されたバッファに収まらない場合、バッファが拡張されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>T <u>toScalarValue</u>(T)(ref T <i>t</i>, in ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたバイトバッファを指定されたスカラ型の値に変換します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>T <u>toStructValue</u>(T)(ref T <i>t</i>, in ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたバイトバッファを指定されたstruct型の値に変換します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>T <u>toArrayValue</u>(T)(ref T <i>t</i>, in ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたバイトバッファを指定されたstruct型の値に変換します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>T <u>toExternalizableValue</u>(T)(ref T <i>t</i>, in ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたバイトバッファを指定された Externalizable を
 実装したクラスに変換します.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
<dt><big>T <u>toUnionValue</u>(T)(ref T <i>t</i>, in ubyte[] <i>buff</i>, ref int* <i>offset</i>, in Endian <i>e</i>);
</big></dt>
<dd>指定されたバイトバッファを指定されたunion型の値に変換します.
 もっとも, サイズの大きい型に調整されます.
<br><br>
<b>Params:</b><br>
<table><tr><td>t</td>
<td>変換する型</td></tr>
<tr><td>buff</td>
<td>バイトバッファ</td></tr>
<tr><td>offset</td>
<td>オフセット</td></tr>
<tr><td>e</td>
<td>エンディアン</td></tr>
</table><br>
<b>Return:</b><br>
変換後の値
 
<br><br>

</dd>
</dl>

	<hr><small>Page generated by <a href="http://www.digitalmars.com/d/2.0/ddoc.html">Ddoc</a>. </small>
	</body></html>