#include <Bufferfstream.h>
Inheritance diagram for Bufferfstream:


Public Member Functions | |
| Bufferfstream (BufferBase &buf) | |
| Bufferfstream (const Bufferfstream &rhs) | |
| Bufferfstream () | |
| void | erase () |
| char | get (int i) |
| void | get (int i, char &c) |
| char | get () |
| void | get (char &c) |
| string | isa () const |
| Bufferfstream & | operator= (Bufferfstream &rhs) |
| void | put (int i, char c) |
| void | put (char c) |
| void | seekg (int pos, const BufferBase::SeekDir dir=beg) |
| void | seekp (int pos, const BufferBase::SeekDir dir=beg) |
| ~Bufferfstream () | |
Protected Attributes | |
| string | _filename |
| fstream * | _fs |
| int | _handle |
|
|
Definition at line 62 of file Bufferfstream.h. References _filename, _fs, _handle, BufferfstreamManager.get_handle(), BufferfstreamManager.Instance(), and inttohex().
00063 : BufferBase(), _fs( new fstream ) 00064 { 00065 _handle = BufferfstreamManager::Instance()->get_handle(); 00066 char ctmp[2*2+1]; 00067 inttohex( _handle, ctmp, 2 ); 00068 _filename = "~bfs"; 00069 _filename += ctmp; 00070 _fs->open( _filename.c_str(), ios::out ); 00071 _fs->close(); 00072 // _fs->open( _filename.c_str(), ios::in | ios::app ); 00073 _fs->open( _filename.c_str(), ios::in | ios::out ); 00074 } |
|
|
Definition at line 77 of file Bufferfstream.h. References _filename, _fs, _handle, BufferBase._size, BufferfstreamManager.get_handle(), BufferfstreamManager.Instance(), and inttohex().
00078 : BufferBase(rhs), _fs( new fstream ) 00079 { 00080 _handle = BufferfstreamManager::Instance()->get_handle(); 00081 char ctmp[2*2+1]; 00082 inttohex( _handle, ctmp, 2 ); 00083 _filename = "~bfs"; 00084 _filename += ctmp; 00085 _fs->open( _filename.c_str(), ios::out ); 00086 _fs->close(); 00087 // _fs->open( _filename.c_str(), ios::in | ios::app ); 00088 _fs->open( _filename.c_str(), ios::in | ios::out ); 00089 rhs._fs->seekg(0); 00090 for( int i = 0; i < rhs._size; ++i ) _fs->put( rhs._fs->get() ); 00091 } |
|
|
Definition at line 94 of file Bufferfstream.h. References _filename, _fs, _handle, erase(), BufferfstreamManager.get_handle(), BufferfstreamManager.Instance(), and inttohex().
00095 : BufferBase(buf), _fs( new fstream ) 00096 { 00097 _handle = BufferfstreamManager::Instance()->get_handle(); 00098 char ctmp[2*2+1]; 00099 inttohex( _handle, ctmp, 2 ); 00100 _filename = "~bfs"; 00101 _filename += ctmp; 00102 _fs->open( _filename.c_str(), ios::out ); 00103 _fs->close(); 00104 // _fs->open( _filename.c_str(), ios::in | ios::app ); 00105 _fs->open( _filename.c_str(), ios::in | ios::out ); 00106 erase(); 00107 (*this) << buf; 00108 } |
|
|
Definition at line 111 of file Bufferfstream.h. References _fs, _handle, and BufferfstreamManager.free_handle().
00112 {
00113 _fs->close();
00114 if ( _fs != 0 ) { delete _fs; _fs = 0; }
00115 BufferfstreamManager::free_handle(_handle);
00116 }
|
|
|
Reimplemented from BufferBase. Definition at line 176 of file Bufferfstream.h. References _filename, _fs, and BufferBase.erase(). Referenced by Bufferfstream(), and operator=().
|
|
|
Reimplemented from BufferBase. Definition at line 173 of file Bufferfstream.h. References BufferBase.get().
00173 { return BufferBase::get(i); }
|
|
||||||||||||
|
Reimplemented from BufferBase. Definition at line 172 of file Bufferfstream.h. References BufferBase.get().
00172 { BufferBase::get(i,c); }
|
|
|
Reimplemented from BufferBase. Definition at line 169 of file Bufferfstream.h. References BufferBase.get().
00169 { return BufferBase::get(); }
|
|
|
Reimplemented from BufferBase. Definition at line 158 of file Bufferfstream.h. References _fs, BufferBase.fail(), BufferBase.get(), seekg(), and BufferBase.setstate().
00159 {
00160 seekg(_getpos);
00161 if ( !fail() ) {
00162 _fs->get(c);
00163 BufferBase::get(c);
00164 // cout << "Bufferfstream::got " << _fs->tellg()-1 << ' ' << int((unsigned char)c) << endl;
00165 }
00166 else setstate( BufferBase::failbit );
00167 }
|
|
|
Reimplemented from BufferBase. Definition at line 29 of file Bufferfstream.h.
00029 { return "Bufferfstream"; }
|
|
|
Definition at line 119 of file Bufferfstream.h. References _fs, erase(), and BufferBase.operator=().
00120 {
00121 if ( this != &rhs ) {
00122 BufferBase::operator=(rhs);
00123 erase();
00124 _fs->seekp(0);
00125 _fs->seekg(0);
00126 (*this) << rhs;
00127 }
00128 return *this;
00129 }
|
|
||||||||||||
|
Reimplemented from BufferBase. Definition at line 171 of file Bufferfstream.h. References BufferBase.put().
00171 { BufferBase::put(i,c); }
|
|
|
Reimplemented from BufferBase. Definition at line 146 of file Bufferfstream.h. References _fs, BufferBase.fail(), BufferBase.put(), seekp(), and BufferBase.setstate().
00147 {
00148 // cout << "Bufferfstream::puting " << _putpos << ' ' << int((unsigned char)c) << endl;
00149 seekp(_putpos);
00150 if ( !fail() ) {
00151 _fs->put(c);
00152 BufferBase::put(c);
00153 }
00154 else setstate( BufferBase::failbit );
00155 }
|
|
||||||||||||
|
Reimplemented from BufferBase. Definition at line 139 of file Bufferfstream.h. References _fs, BufferBase.fail(), and BufferBase.seekg(). Referenced by get().
00140 {
00141 BufferBase::seekg( pos, dir );
00142 if ( !fail() ) _fs->seekg(_getpos);
00143 }
|
|
||||||||||||
|
Reimplemented from BufferBase. Definition at line 132 of file Bufferfstream.h. References _fs, BufferBase.fail(), and BufferBase.seekp(). Referenced by put().
00133 {
00134 BufferBase::seekp( pos, dir );
00135 if ( !fail() ) _fs->seekp(_putpos);
00136 }
|
|
|
Definition at line 56 of file Bufferfstream.h. Referenced by Bufferfstream(), and erase(). |
|
|
Definition at line 57 of file Bufferfstream.h. Referenced by Bufferfstream(), erase(), get(), operator=(), put(), seekg(), seekp(), and ~Bufferfstream(). |
|
|
Definition at line 55 of file Bufferfstream.h. Referenced by Bufferfstream(), and ~Bufferfstream(). |
1.3.6