IParser
パーサーの基底クラス
パーサーオブジェクトに1バイトずつ電文を投入することで、電文系列を解釈する状態遷移マシンです。
メソッド
Parse(), operator << ()
パーサーに1バイト入力します。入力のたびにパーサーの状態が変化し、パーサーの解釈が完了するとstate()
がE_TWESERCMD_COMPLETE
に変化し解釈完了状態となります。
state()
パーサーの状態を取得します。
operator bool(), is_complete()
パーサーの状態がE_TWESERCMD_COMPLETE
の場合true
になります。
length()
パーサーで解釈済みのバイト列のデータ長を返します。
operator[]()
パーサーの解釈済みのバイト列にアクセスします。
get_payload()
パーサーの解釈済みのバイト列を格納した配列クラスSmplBuf_Byte
を参照します。
reinit()
パーサーの解釈途中の内容を破棄し、新たな解釈を始めます。
operator << ()
IStreamOutをベースクラスにもつストリームオブジェクトに、書式出力します。
メソッド
_u8Parse()
1バイト入力して解釈を進める仮想関数です。派生クラスにより実装されます。
_vOutput()
バイト配列bobj
に格納されるバイト列に対応する書式をストリームp
に出力する仮想関数です。派生クラスにより実装されます。
状態
状態名 | 値 | 状態 |
| 0 | 解釈前で、まだ系列のヘッダも認識できていない |
1..0x7F | 解釈中 | |
| 0x80 | 系列が正しく解釈できた |
| 0x81 | 系列の解釈にエラーがあった |
| 0x82 | 系列は得られたがチェックサムエラーだった |
最終更新