CMS 3D CMS Logo

ReadBuffer.h

Go to the documentation of this file.
00001 #ifndef CLASSLIB_READ_BUFFER_H
00002 # define CLASSLIB_READ_BUFFER_H
00003 
00004 //<<<<<< INCLUDES                                                       >>>>>>
00005 
00006 # include "classlib/sysapi/system.h"
00007 # include "classlib/sysapi/IOTypes.h"
00008 
00009 namespace lat {
00010 //<<<<<< PUBLIC DEFINES                                                 >>>>>>
00011 //<<<<<< PUBLIC CONSTANTS                                               >>>>>>
00012 //<<<<<< PUBLIC TYPES                                                   >>>>>>
00013 //<<<<<< PUBLIC VARIABLES                                               >>>>>>
00014 //<<<<<< PUBLIC FUNCTIONS                                               >>>>>>
00015 //<<<<<< CLASS DECLARATIONS                                             >>>>>>
00016 
00031 class ReadBuffer
00032 {
00033 public:
00034     enum { DEFAULT_SIZE = 4096 };       //< Default buffer size.
00035     ReadBuffer (IOSize bufsize = DEFAULT_SIZE);
00036     ReadBuffer (const ReadBuffer &x);
00037     ReadBuffer &operator= (const ReadBuffer &x);
00038     ~ReadBuffer (void);
00039 
00040     IOSize              left (void) const;
00041     IOSize              capacity (void) const;
00042 
00043     unsigned char *     pback (void) const;
00044     unsigned char *     buffer (void) const;
00045     unsigned char *     current (void) const;
00046     unsigned char *     end (void) const;
00047     unsigned char *     limit (void) const;
00048 
00049     void                reset (void);
00050 
00051     void                filled (IOSize n);
00052     void                skip (IOSize n);
00053     void                get (void *data, IOSize n);
00054     void                unget (const void *data, IOSize n);
00055 
00056 private:
00057     unsigned char       *m_buffer;
00058     unsigned char       *m_current;
00059     unsigned char       *m_end;
00060     unsigned char       *m_limit;
00061     unsigned char       *m_pback;
00062 };
00063 
00064 //<<<<<< INLINE PUBLIC FUNCTIONS                                        >>>>>>
00065 //<<<<<< INLINE MEMBER FUNCTIONS                                        >>>>>>
00066 
00067 } // namespace lat
00068 #endif // CLASSLIB_READ_BUFFER_H

Generated on Tue Jun 9 17:38:52 2009 for CMSSW by  doxygen 1.5.4