要素データを並べてバイト列を生成します。
pack_bytes
はコンテナクラスのbegin()
,end()
イテレータをパラメータとし、続くパラメータで指定されるデータをバイト列としてコンテナに書き込みます。
可変引数パラメータに与えるデータは以下に示すとおりです。
pack_bytes
はコンテナオブジェクトをパラメータとし、続くパラメータで指定されるデータをバイト列としてコンテナに書き込みます。コンテナの.push_back()
メソッドで末尾に追加します。
可変引数パラメータに与えるデータは以下に示すとおりです。
この例では受信パケットの各属性やペイロードを別のバッファbuf
に再格納しています。
無全パケットのデータペイロードの生成やデータの取り出しで用いられるuint8_t
型のバイト配列の記述を簡素化するため。
上記はもっとも単純な記述だが、以下のようにByte array utilsを用いてバイト配列を生成できる。
データ型
バイト数
解説
uint8_t
1
uint16_t
2
ビッグエンディアン並びで格納される
uint32_t
4
ビッグエンディアン並びで格納される
uint8_t[N]
N
uint8_t
型の固定長配列
std::pair<char*,N>
N
char*
,uint8_t*
型の配列と配列長のペア。make_pair()
で生成できる。
データ型
バイト数
解説
uint8_t
1
uint16_t
2
ビッグエンディアン並びで格納される
uint32_t
4
ビッグエンディアン並びで格納される
uint8_t[N]
N
uint8_t
型の固定長配列
std::pair<char*,N>
N
char*
,uint8_t*
型の配列と配列長のペア。make_pair()
で生成できる。
smplbuf_u8?
.size()
uint8_t
型のsmplbuf<>
コンテナ。コンテナ長(.size()
)のデータを格納する。