Main Page   Class Hierarchy   Compound List   Header Files   Compound Members  

bgstream.h

This is the verbatim text of the bgstream.h include file.
#ifndef __BGSTREAM_H__
#define __BGSTREAM_H__

/* $Id: bgstream.h,v 1.1 2000/02/18 09:04:17 dpfeifle Exp $ */

#include "bgobject.h"
#include "bglog.h"

#include <stdio.h>

class BGString;

// ------------------------------------------------------------------
// Class: BGInputStream
// ------------------------------------------------------------------

class BGInputStream
{
public:

virtual int
   read                      ( ) = 0;

virtual long
   read                      ( unsigned char *buffer,
                               long offset,
                               long len );
};

// ------------------------------------------------------------------
// Class: BGOutputStream
// ------------------------------------------------------------------

class BGOutputStream
{
public:

virtual void
   write                     ( unsigned char data ) = 0;

virtual long
   write                     ( unsigned char *buffer,
                               long offset,
                               long len );

virtual void
   flush                     ( );

virtual void
   close                     ( );
};

// ------------------------------------------------------------------
// Class: BGFileInputStream
// ------------------------------------------------------------------

class BGFileInputStream
   : public BGInputStream
{
public:

   BGFileInputStream         ( FILE *fp, long buflen=1024 );
// BGFileInputStream         ( const char *filename, const char *mode="rb" );
virtual
  ~BGFileInputStream         ( );

virtual int
   read                      ( );

virtual long
   read                      ( unsigned char *buffer,
                               long offset,
                               long len );

private:
FILE 
   *fp;
unsigned char
   *buf;
long
   buf_len;
long
   buf_ptr;
long
   read_ptr;
};

// ------------------------------------------------------------------
// Class: BGFileOutputStream
// ------------------------------------------------------------------

class BGFileOutputStream
   : public BGOutputStream
{
public:

   BGFileOutputStream        ( FILE *fp, long buflen=1024 );
virtual
  ~BGFileOutputStream        ( );

virtual void
   write                     ( unsigned char data );
virtual void
   flush                     ( );
virtual void
   close                     ( );

private:
FILE 
   *fp;
unsigned char
   *buf;
long
   buf_len;
long
   write_ptr;
};

// ------------------------------------------------------------------
// Class: BGReader
// ------------------------------------------------------------------

class BGReader
{
public:
   BGReader                  ( BGInputStream &in );
virtual
  ~BGReader                  ( );   
virtual long
   readln                    ( BGString &s );
   
private:
BGInputStream&
   instream;
};

// ------------------------------------------------------------------
// Class: BGWriter
// ------------------------------------------------------------------

class BGWriter
{
public:
   BGWriter                 ( BGOutputStream &out );
virtual
  ~BGWriter                 ( );
virtual long
   writeln                  ( BGString &s );

private:
BGOutputStream&
   outstream;
};

#endif

Generated at Fri Feb 18 10:57:07 2000 for bgclass by doxygen 0.49-991205 written by Dimitri van Heesch, © 1997-1999