クラス 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 int
2**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 int
read
(InputStreamSE inputStream, byte[] buffer, boolean header) ソケットからデータを読み取り、データをバッファに入れます。protected int
readHeader
(InputStreamSE inputStream) ヘッダーを読み取り、データ部分の長さを返します。void
serialize
(byte[] bytes, OutputStreamSE outputStream) byte[] を出力ストリームに書き込み、その前にネットワークバイトオーダー(ビッグエンディアン)で 4 バイトの長さを指定します。void
setInclusive
(boolean inclusive) true に設定すると、ペイロードに加えてヘッダーの長さが含まれるように長さヘッダーが設定されます。protected void
writeHeader
(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
- 長さデータが読み取られる前にソケットが閉じた場合。