メインページ | クラス階層 | アルファベット順一覧 | 構成 | Directories | ファイル一覧 | 構成メンバ | ファイルメンバ

BufferedReader.h

説明を見る。
00001 
00011 #ifndef BUFFERED_READER_H
00012 #define BUFFERED_READER_H
00013 
00014 #include <basic.h>
00015 #include <btron/file.h>
00016 #include "Exception.h"
00017 
00019 
00022 class BufferedReader {
00023 
00024   W filedes; 
00025 
00026   static const int bufsize = 1024;
00027 
00028   B buff[bufsize]; 
00029 
00030   int bcur; 
00031   int blen; 
00032 
00033   W offset; 
00034 
00035   mutable bool eof_state; 
00036 
00038 
00042   void renewEOFState() const {
00043     W rsize, err;
00044     err = rea_rec(filedes, offset, NULL, 0, &rsize, NULL);
00045     if (err < 0){
00046       throw FileReadException(filedes, err);
00047     }
00048     eof_state = (rsize <= 0);
00049   }
00050 
00051  public:
00052 
00054 
00059   BufferedReader(W fd)
00060     : filedes(fd), bcur(0), blen(0), offset(0)
00061   {
00062     renewEOFState();
00063   }
00064 
00066 
00071   bool isEOF() const {
00072     return eof_state && (blen == bcur);
00073   }
00074 
00076 
00083   int read(B* target, int size);
00084 
00086 
00092   int skip(int size);
00093 
00094 };
00095 
00096 #endif // BUFFERED_READER_H

Scribbleに対してMon May 9 23:54:47 2005に生成されました。  doxygen 1.4.1