クラス ByteArrayLengthHeaderSerializer
java.lang.ObjectSE
org.springframework.integration.ip.tcp.serializer.AbstractByteArraySerializer
org.springframework.integration.ip.tcp.serializer.ByteArrayLengthHeaderSerializer
- 実装されているすべてのインターフェース:
Aware、ApplicationEventPublisherAware、Deserializer<byte[]>、Serializer<byte[]>
InputStream のデータを byte[] に読み取ります。データの前にはバイナリ長(ネットワークバイトオーダー、結果の byte[] には含まれません)を付ける必要があります。
バイナリ長の後に byte[] を OutputStream に書き込みます。長さフィールドには、長さフィールドに続くデータの長さが含まれます。(ネットワークバイト順序)。
デフォルトの長さフィールドは 4 バイトの符号付き整数です。デシリアライズ中、負の値は拒否されます。その他のオプションは、符号なしバイトと符号なしショートです。
他のヘッダー形式の場合は、readHeader(InputStream) と writeHeader(OutputStream, int) をオーバーライドします。
- 導入:
- 2.0
- 作成者:
- Gary Russell, Artem Bilan
フィールドのサマリー
フィールド修飾子と型フィールド説明static final intデフォルトの長さヘッダーフィールド。最大 2**31-1 バイトのデータを許可します。static final int最大 255 バイトのデータ用の単一の符号なしバイト。static final int2**16 バイトまでのデータの unsignedshort。クラス org.springframework.integration.ip.tcp.serializer.AbstractByteArraySerializer から継承されたフィールド
DEFAULT_MAX_MESSAGE_SIZE, loggerコンストラクターの概要
コンストラクターコンストラクター説明HEADER_SIZE_INTを使用してシリアライザーを構築します。ByteArrayLengthHeaderSerializer(int headerSize) 提供されたヘッダーサイズを使用してシリアライザーを構築します。メソッドのサマリー
修飾子と型メソッド説明byte[]deserialize(InputStreamSE inputStream) ストリームからヘッダーを読み取り、次にストリームから指定された長さを読み取り、byte[] でデータを返します。ペイロードに加えて、ヘッダーの長さを含めます。protected boolean長さヘッダー値に独自の長さが含まれている場合は true を返します。protected intread(InputStreamSE inputStream, byte[] buffer, boolean header) ソケットからデータを読み取り、データをバッファに入れます。protected intreadHeader(InputStreamSE inputStream) ヘッダーを読み取り、データ部分の長さを返します。voidserialize(byte[] bytes, OutputStreamSE outputStream) byte[] を出力ストリームに書き込み、その前にネットワークバイトオーダー(ビッグエンディアン)で 4 バイトの長さを指定します。voidsetInclusive(boolean inclusive) true に設定すると、ペイロードに加えてヘッダーの長さが含まれるように長さヘッダーが設定されます。protected voidwriteHeader(OutputStreamSE outputStream, int length) ヘッダー形式に従って、ヘッダーを書き込みます。クラス org.springframework.integration.ip.tcp.serializer.AbstractByteArraySerializer から継承されたメソッド
checkClosure, getMaxMessageSize, publishEvent, setApplicationEventPublisher, setMaxMessageSizeクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.core.serializer.Deserializer から継承されたメソッド
deserializeFromByteArrayインターフェース org.springframework.core.serializer.Serializer から継承されたメソッド
serializeToByteArray
フィールドの詳細
HEADER_SIZE_INT
public static final int HEADER_SIZE_INTデフォルトの長さヘッダーフィールド。最大 2**31-1 バイトのデータを許可します。- 関連事項:
HEADER_SIZE_UNSIGNED_SHORT
public static final int HEADER_SIZE_UNSIGNED_SHORT2**16 バイトまでのデータの unsignedshort。- 関連事項:
HEADER_SIZE_UNSIGNED_BYTE
public static final int HEADER_SIZE_UNSIGNED_BYTE最大 255 バイトのデータ用の単一の符号なしバイト。- 関連事項:
コンストラクターの詳細
ByteArrayLengthHeaderSerializer
public ByteArrayLengthHeaderSerializer()HEADER_SIZE_INTを使用してシリアライザーを構築します。ByteArrayLengthHeaderSerializer
public ByteArrayLengthHeaderSerializer(int headerSize) 提供されたヘッダーサイズを使用してシリアライザーを構築します。有効なヘッダーサイズは、HEADER_SIZE_INT(デフォルト)、HEADER_SIZE_UNSIGNED_BYTE、HEADER_SIZE_UNSIGNED_SHORTです。- パラメーター:
headerSize- ヘッダーサイズ。
メソッドの詳細
isInclusive
protected boolean isInclusive()長さヘッダー値に独自の長さが含まれている場合は true を返します。- 戻り値:
- 長さにヘッダーの長さが含まれている場合は true。
- 導入:
- 5.2
setInclusive
public void setInclusive(boolean inclusive) true に設定すると、ペイロードに加えてヘッダーの長さが含まれるように長さヘッダーが設定されます。有効なヘッダーサイズはHEADER_SIZE_INT(デフォルト)です。HEADER_SIZE_UNSIGNED_BYTEとHEADER_SIZE_UNSIGNED_SHORT、および 4, 1 と 2 がそれぞれペイロード長に追加されます。- パラメーター:
inclusive- ヘッダーの長さを含める場合は true。- 導入:
- 5.2
- 関連事項:
inclusive
ペイロードに加えて、ヘッダーの長さを含めます。有効なヘッダーサイズはHEADER_SIZE_INT(デフォルト)です。HEADER_SIZE_UNSIGNED_BYTEとHEADER_SIZE_UNSIGNED_SHORT、および 4, 1 と 2 がそれぞれペイロード長に追加されます。setInclusive(boolean)の流れるような API 形式。- 戻り値:
- シリアライザー。
- 導入:
- 5.2
- 関連事項:
deserialize
ストリームからヘッダーを読み取り、指定された長さをストリームから読み取り、データを byte[] で返します。長さフィールドが maxMessageSize を超える場合は IOException をスローします。メッセージ間でストリームが閉じられている場合はSoftEndOfStreamExceptionをスローします。- パラメーター:
inputStream- 入力ストリーム。- 例外:
IOExceptionSE- IOException。
serialize
byte[] を出力ストリームに書き込み、その前にネットワークバイトオーダー(ビッグエンディアン)で 4 バイトの長さを指定します。- パラメーター:
bytes- バイト。outputStream- 出力ストリーム。- 例外:
IOExceptionSE
read
ソケットからデータを読み取り、データをバッファに入れます。バッファがいっぱいになるか、ソケットタイムアウトが発生するまでブロックします。- パラメーター:
inputStream- 入力ストリーム。buffer- データを読み込む必要のあるバッファheader- ヘッダーを読んでいる場合は true- 戻り値:
- ソケットが閉じていてメッセージの途中ではない場合は
< 0 - 例外:
IOExceptionSE- IOException。
writeHeader
ヘッダー形式に従って、ヘッダーを書き込みます。- パラメーター:
outputStream- 出力ストリーム。length- 長さ。- 例外:
IOExceptionSE- IOException。
readHeader
ヘッダーを読み取り、データ部分の長さを返します。- パラメーター:
inputStream- 入力ストリーム。- 戻り値:
- データ部分の長さ。
- 例外:
IOExceptionSE- IOException。SoftEndOfStreamException- 長さデータが読み取られる前にソケットが閉じた場合。