/******************************************************************************
 *
 *  abstract stream interfaces
 */


#ifndef STREAM_H
#define STREAM_H


/*! interface InputStream
 */
class InputStream {
public:
  virtual ~InputStream(){}
  virtual bool isValid() const = 0;
  virtual unsigned long read(void *, unsigned long size) = 0;
};



/*!  interface  OutputStream
 */
class OutputStream {
public:
  virtual ~OutputStream() {}
  virtual bool isValid() const = 0;
  virtual unsigned long write(const void *, unsigned long size) = 0;
};


#endif // STREAM_H


