Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

BufferBase Class Reference

#include <BufferBase.h>

Inheritance diagram for BufferBase:

Inheritance graph
[legend]
Collaboration diagram for BufferBase:

Collaboration graph
[legend]

Public Types

enum  SeekDir { beg, cur, end }

Public Member Functions

virtual bool bad ()
 BufferBase (const BufferBase &)
 BufferBase ()
virtual void clear (int state=BufferBase::goodbit)
virtual void clrstate (int state)
virtual bool eob ()
virtual void erase ()
virtual bool fail ()
virtual char get (int)
virtual void get (int, char &)
virtual char get ()
virtual void get (char &)
virtual bool good ()
virtual string isa () const
BufferBaseoperator<< (bytepack &)
BufferBaseoperator<< (BufferBase &)
virtual BufferBaseoperator= (BufferBase &)
BufferBaseoperator>> (ostream &)
BufferBaseoperator>> (bytepack &)
BufferBaseoperator>> (BufferBase &)
virtual void put (int, char)
virtual void put (char)
virtual int rdstate ()
void read (ostream &)
void read (bytepack &)
void read (BufferBase &)
virtual void seekg (int, SeekDir dir=beg)
virtual void seekp (int, SeekDir dir=beg)
virtual void setstate (int state)
virtual int size ()
virtual int tellg ()
virtual int tellp ()
void write (bytepack &)
void write (BufferBase &)
virtual ~BufferBase ()

Static Public Attributes

const int badbit = 0x08
const int eobbit = 0x04
const int failbit = 0x02
const int goodbit = 0x01

Protected Attributes

int _getpos
int _putpos
int _size
int _state

Member Enumeration Documentation

enum BufferBase::SeekDir
 

Enumeration values:
beg 
cur 
end 

Definition at line 32 of file BufferBase.h.

00032 { beg, cur, end };


Constructor & Destructor Documentation

BufferBase::BufferBase  ) 
 

Definition at line 92 of file BufferBase.h.

00093   : _size(0), 
00094     _putpos(0), _getpos(0), 
00095     _state( BufferBase::goodbit ) 
00096 {}

BufferBase::BufferBase const BufferBase  ) 
 

Definition at line 99 of file BufferBase.h.

00100   : _size( rhs._size ), 
00101     _putpos( rhs._putpos ), _getpos( rhs._getpos ), 
00102     _state( rhs._state ) 
00103 {}

BufferBase::~BufferBase  )  [virtual]
 

Definition at line 106 of file BufferBase.h.

00106 {}


Member Function Documentation

bool BufferBase::bad  )  [virtual]
 

Definition at line 196 of file BufferBase.h.

References badbit.

00196 { return (_state & BufferBase::badbit) != 0; }

void BufferBase::clear int  state = BufferBase::goodbit  )  [virtual]
 

Definition at line 187 of file BufferBase.h.

Referenced by erase().

00187 { _state = state; }

void BufferBase::clrstate int  state  )  [virtual]
 

Definition at line 190 of file BufferBase.h.

Referenced by seekg().

00190 { _state &= !state; }

bool BufferBase::eob  )  [virtual]
 

Definition at line 197 of file BufferBase.h.

References eobbit.

Referenced by get(), Buffer.get(), read(), MCFTPmssg.write(), MCFsb.write(), and write().

00197 { return (_state & BufferBase::eobbit) != 0; }

void BufferBase::erase  )  [virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 281 of file BufferBase.h.

References _getpos, _putpos, and clear().

Referenced by MRAmpBase.copy(), Bufferfstream.erase(), Buffer.erase(), MRAsbBase.MRAsbBase(), MRAmpBase.operator()(), MRAsbBase.set_empty(), MRAmpBase.set_empty(), MRAsbBase.set_null(), MRAmpBase.set_null(), MRAsbBase.write(), and MRAmpBase.write().

00282 {
00283    _size = 0;
00284    _putpos = 0;
00285    _getpos = 0;
00286    clear( BufferBase::goodbit );
00287 }

bool BufferBase::fail  )  [virtual]
 

Definition at line 195 of file BufferBase.h.

Referenced by Bufferfstream.get(), Bufferfstream.put(), Bufferfstream.seekg(), and Bufferfstream.seekp().

00195 { return (_state & BufferBase::failbit) != 0; }

char BufferBase::get int   )  [virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 271 of file BufferBase.h.

References get(), and seekg().

00272 {
00273    seekg(pos);
00274    return get();
00275 }

void BufferBase::get int  ,
char & 
[virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 264 of file BufferBase.h.

References get(), and seekg().

00265 {
00266    seekg(pos);
00267    get(c);
00268 }

char BufferBase::get  )  [virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 249 of file BufferBase.h.

Referenced by Bufferfstream.get(), get(), Buffer.get(), and read().

00250 {
00251    char c;
00252    get(c);
00253    return c;
00254 }

void BufferBase::get char &   )  [virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 240 of file BufferBase.h.

References _getpos, eob(), eobbit, and setstate().

Referenced by Buffer.Buffer(), MRAsbBase.copy(), MRAmpBase.copy(), MRAsbBase.is_equal(), MRAmpBase.is_equal(), MRAsbBase.MRAsbBase(), MRAsbBase.operator()(), MRAsbBase.read(), MRAmpBase.read(), MRAsbBase.recover(), MRAsbBase.synchronize(), MRAsbBase.write(), MRAmpBase.write(), MCFTPrequest.write(), MCFTPquote.write(), MCFTPmssg.write(), MCFTPheader.write(), MCFsb.write(), MCFheader.write(), and write().

00241 {
00242    if ( !eob() ) {
00243       if ( ++_getpos == _size ) setstate( BufferBase::eobbit );
00244    }
00245    else setstate( BufferBase::failbit );
00246 }

bool BufferBase::good  )  [virtual]
 

Definition at line 194 of file BufferBase.h.

00194 { return _state == 1; }

virtual string BufferBase.isa  )  const [virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 25 of file BufferBase.h.

00025 { return "BufferBase"; }

BufferBase & BufferBase::operator<< bytepack  ) 
 

Definition at line 155 of file BufferBase.h.

References write().

00156 {
00157    write(bp);
00158    return *this;
00159 }

BufferBase & BufferBase::operator<< BufferBase  ) 
 

Definition at line 128 of file BufferBase.h.

References write().

00129 {
00130    write(buffer);
00131    return *this;
00132 }

BufferBase & BufferBase::operator= BufferBase  )  [virtual]
 

Definition at line 109 of file BufferBase.h.

References _getpos, _putpos, _size, and _state.

Referenced by Bufferfstream.operator=(), and Buffer.operator=().

00110 {
00111    if ( this != &rhs ) {
00112       _size = rhs._size;
00113       _putpos =  rhs._putpos;
00114       _getpos =  rhs._getpos;
00115       _state =  rhs._state;
00116    }
00117    return *this;
00118 }

BufferBase & BufferBase::operator>> ostream &   ) 
 

Definition at line 181 of file BufferBase.h.

References read().

00182 {
00183    read(os);
00184    return *this;
00185 }

BufferBase & BufferBase::operator>> bytepack  ) 
 

Definition at line 168 of file BufferBase.h.

References read().

00169 {
00170    read(bp);
00171    return *this;
00172 }

BufferBase & BufferBase::operator>> BufferBase  ) 
 

Definition at line 142 of file BufferBase.h.

References read().

00143 {
00144    read(buffer);
00145    return *this;
00146 }

void BufferBase::put int  ,
char 
[virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 257 of file BufferBase.h.

References put(), and seekp().

00258 {
00259    seekp(pos);
00260    put(c);
00261 }

void BufferBase::put char   )  [virtual]
 

Reimplemented in Buffer, and Bufferfstream.

Definition at line 234 of file BufferBase.h.

References _putpos.

Referenced by MRAsbBase.copy(), MRAmpBase.copy(), MRAsbBase.fix_hdr(), MRAsbBase.MRAsbBase(), MRAsbBase.operator()(), Bufferfstream.put(), put(), Buffer.put(), MRAsbBase.read(), MRAmpBase.read(), MCFTPrequest.read(), MCFTPquote.read(), MCFTPmssg.read(), MCFTPheader.read(), MCFsb.read(), MCFheader.read(), read(), MRAsbBase.recover(), MRAsbBase.write(), MRAmpBase.write(), and write().

00235 {
00236    if ( _putpos++ == _size ) ++_size;
00237 }

int BufferBase::rdstate  )  [virtual]
 

Definition at line 192 of file BufferBase.h.

00192 { return _state; }

void BufferBase::read ostream &   ) 
 

Definition at line 175 of file BufferBase.h.

References eob(), and get().

00176 {
00177    while ( !eob() ) os.put( get() );
00178 }

void BufferBase::read bytepack  ) 
 

Definition at line 162 of file BufferBase.h.

References get(), and bytepack.size().

00163 {
00164    for( int i = 0; i < bp.size(); ++i ) bp[i] = get();
00165 }

void BufferBase::read BufferBase  ) 
 

Definition at line 135 of file BufferBase.h.

References eob(), get(), put(), and seekg().

Referenced by MRAmpBase.iterator.operator *(), MRAmpBase.iterator.operator++(), operator>>(), MRAsbBase.synchronize(), and MRAmpBase.synchronize().

00136 {
00137    seekg(0);
00138    while ( !eob() ) buffer.put( get() );
00139 }

void BufferBase::seekg int  ,
SeekDir  dir = beg
[virtual]
 

Reimplemented in Bufferfstream.

Definition at line 212 of file BufferBase.h.

References _getpos, clrstate(), cur, end, eobbit, and setstate().

Referenced by Buffer.Buffer(), MRAsbBase.copy(), MRAmpBase.copy(), get(), MRAsbBase.is_equal(), MRAmpBase.is_equal(), MRAsbBase.MRAsbBase(), MRAsbBase.iterator.operator *(), MRAmpBase.iterator.operator *(), MRAsbBase.operator()(), MRAsbBase.iterator.operator++(), MRAmpBase.iterator.operator++(), MRAsbBase.read(), MRAmpBase.read(), read(), Bufferfstream.seekg(), MRAsbBase.synchronize(), MRAmpBase.synchronize(), and write().

00213 {
00214    clrstate( BufferBase::eobbit );
00215 
00216    int tmp = pos;
00217 
00218    if ( dir == BufferBase::cur ) tmp += _getpos;
00219    if ( dir == BufferBase::end ) tmp += _size;
00220 
00221    if ( ( tmp >= 0 ) && ( tmp < _size ) )  _getpos = tmp;
00222    else setstate( BufferBase::failbit );
00223 
00224    if ( _getpos == _size )  setstate( BufferBase::eobbit );
00225 }

void BufferBase::seekp int  ,
SeekDir  dir = beg
[virtual]
 

Reimplemented in Bufferfstream.

Definition at line 200 of file BufferBase.h.

References _putpos, cur, end, and setstate().

Referenced by MRAsbBase.copy(), MRAsbBase.fix_hdr(), MRAmpBase.fix_hdr(), MRAmpBase.fix_mp(), MRAsbBase.fix_sb(), MRAsbBase.MRAsbBase(), MRAsbBase.operator()(), put(), MRAsbBase.refix_hdr(), MRAmpBase.refix_hdr(), Bufferfstream.seekp(), MRAsbBase.synchronize(), MRAmpBase.unfix_mp(), and MRAsbBase.unfix_sb().

00201 {
00202    int tmp = pos;
00203 
00204    if ( dir == BufferBase::cur ) tmp += _putpos;
00205    if ( dir == BufferBase::end ) tmp += _size;
00206 
00207    if ( ( tmp >= 0 ) && ( tmp <= _size ) )  _putpos = tmp;
00208    else setstate( BufferBase::failbit );
00209 }

void BufferBase::setstate int  state  )  [virtual]
 

Definition at line 189 of file BufferBase.h.

Referenced by Bufferfstream.get(), get(), Buffer.get(), Bufferfstream.put(), seekg(), and seekp().

00189 { _state |= state; }

int BufferBase::size  )  [virtual]
 

Definition at line 278 of file BufferBase.h.

Referenced by Buffer.Buffer(), MRAsbBase.copy(), MRAsbBase.MRAsbBase(), MRAsbBase.operator()(), Buffer.resizemax(), and MRAsbBase.synchronize().

00278 { return _size; }

int BufferBase::tellg  )  [virtual]
 

Definition at line 231 of file BufferBase.h.

References _getpos.

Referenced by MRAsbBase.is_equal(), MRAmpBase.is_equal(), MRAsbBase.iterator.operator *(), MRAmpBase.iterator.operator *(), MRAsbBase.iterator.operator++(), MRAmpBase.iterator.operator++(), and MRAsbBase.synchronize().

00231 { return _getpos; }

int BufferBase::tellp  )  [virtual]
 

Definition at line 228 of file BufferBase.h.

References _putpos.

Referenced by MRAsbBase.refix_hdr(), and MRAsbBase.synchronize().

00228 { return _putpos; }

void BufferBase::write bytepack  ) 
 

Definition at line 149 of file BufferBase.h.

References put(), and bytepack.size().

00150 {
00151    for( int i = 0; i < bp.size(); ++i ) put( bp[i] );
00152 }

void BufferBase::write BufferBase  ) 
 

Definition at line 121 of file BufferBase.h.

References eob(), get(), put(), and seekg().

Referenced by MRAmpBase.append(), MRAsbBase.fix_hdr(), MRAmpBase.fix_hdr(), MRAmpBase.fix_mp(), MRAsbBase.fix_sb(), operator<<(), MRAsbBase.recover(), MRAsbBase.refix_hdr(), MRAmpBase.refix_hdr(), MRAmpBase.unfix_mp(), MRAsbBase.unfix_sb(), MRAsbBase.write(), and MRAmpBase.write().

00122 {
00123    buffer.seekg(0);
00124    while ( !buffer.eob() ) { put( buffer.get() ); }
00125 }


Field Documentation

int BufferBase._getpos [protected]
 

Definition at line 86 of file BufferBase.h.

Referenced by erase(), get(), operator=(), seekg(), and tellg().

int BufferBase._putpos [protected]
 

Definition at line 85 of file BufferBase.h.

Referenced by erase(), operator=(), put(), seekp(), and tellp().

int BufferBase._size [protected]
 

Definition at line 84 of file BufferBase.h.

Referenced by Buffer.Buffer(), Bufferfstream.Bufferfstream(), operator=(), and Buffer.operator=().

int BufferBase._state [protected]
 

Definition at line 87 of file BufferBase.h.

Referenced by operator=().

const int BufferBase.badbit = 0x08 [static]
 

Definition at line 30 of file BufferBase.h.

Referenced by bad().

const int BufferBase.eobbit = 0x04 [static]
 

Definition at line 29 of file BufferBase.h.

Referenced by eob(), get(), and seekg().

const int BufferBase.failbit = 0x02 [static]
 

Definition at line 28 of file BufferBase.h.

const int BufferBase.goodbit = 0x01 [static]
 

Definition at line 27 of file BufferBase.h.


The documentation for this class was generated from the following file:
Generated on Mon May 31 21:40:42 2004 for SR2k4 Assembler by doxygen 1.3.6