// 現在の読み出し位置を返します。
size_t GetPos() const;
- // 読み出し位置を1バイト分だけ戻します。読み出し位置がすでに先頭
- // である場合でも、例外を発生させる必要はありません。
- void Unget();
-
// 現在位置から、指定された方向に指定された量だけ読み出し位置を進めます。
- // 指定された移動量のうち、実際に移動した量を返します。
- size_t Seek(size_t seekpos, SeekDirection direciton);
+ // 正しく移動できた場合、trueを返します。
+ // seek_differenceには、実際に移動した量を設定するため、有効であるポインタ
+ // を渡さなければなりません。
+ bool Seek(int seekpos, SeekDirection direciton);
+ bool Seek(int seekpos, SeekDirection direciton, size_t* seek_difference);
// 読み出し位置を先頭に戻します。
void Begin();
private:
+ // 内部で利用されます。IsEof = trueである場合に、例外を発生
+ // させます。
+ void CheckInternal();
+
// 初期化された読出し用の文字列です。内部では書込みなどは行われないため、
// constです。
const std::string buffer_;