This is the verbatim text of the qdstream.h include file. It is is provided only for illustration; the copyright remains with Troll Tech.
/****************************************************************************
** $Id: qdstream.h,v 1.7 1995/05/10 00:09:42 hanord Exp $
**
** Definition of QDataStream class
**
** Author : Haavard Nord
** Created : 930831
**
** Copyright (C) 1993-1995 by Troll Tech AS. All rights reserved.
**
*****************************************************************************/
#ifndef QDSTREAM_H
#define QDSTREAM_H
#include "qiodev.h"
class QDataStream // data stream class
{
public:
QDataStream();
QDataStream( QIODevice * );
virtual ~QDataStream();
QIODevice *device() const; // get current stream device
void setDevice( QIODevice * ); // set stream device
void unsetDevice(); // set NULL stream device
bool eos() const; // end of stream data?
enum ByteOrder { BigEndian, LittleEndian };
int byteOrder() const;
void setByteOrder( int );
bool isPrintableData() const; // using printable data
void setPrintableData( bool ); // set printable data on/off
QDataStream &operator>>( INT8 &i );
QDataStream &operator>>( UINT8 &i );
QDataStream &operator>>( INT16 &i );
QDataStream &operator>>( UINT16 &i );
QDataStream &operator>>( INT32 &i );
QDataStream &operator>>( UINT32 &i );
QDataStream &operator>>( int &i );
QDataStream &operator>>( uint &i );
QDataStream &operator>>( float &f );
QDataStream &operator>>( double &f );
QDataStream &operator>>( char *&str );
QDataStream &operator<<( INT8 i );
QDataStream &operator<<( UINT8 i );
QDataStream &operator<<( INT16 i );
QDataStream &operator<<( UINT16 i );
QDataStream &operator<<( INT32 i );
QDataStream &operator<<( UINT32 i );
QDataStream &operator<<( int i );
QDataStream &operator<<( uint i );
QDataStream &operator<<( float f );
QDataStream &operator<<( double f );
QDataStream &operator<<( const char *str );
QDataStream &readBytes( char *&, uint &len );
QDataStream &readRawBytes( char *, uint len );
QDataStream &writeBytes( const char *, uint len );
QDataStream &writeRawBytes( const char *, uint len );
private:
QIODevice *dev; // I/O device
int byteorder; // serialization byte order
bool printable; // printable data
bool noswap; // byte swapping not needed
};
// --------------------------------------------------------------------------
// QDataStream inline functions
//
inline QIODevice *QDataStream::device() const
{ return dev; }
inline void QDataStream::setDevice(QIODevice *d )
{ dev = d; }
inline void QDataStream::unsetDevice()
{ dev = 0; }
inline bool QDataStream::eos() const
{ return dev ? dev->atEnd() : TRUE; }
inline int QDataStream::byteOrder() const
{ return byteorder; }
inline bool QDataStream::isPrintableData() const
{ return printable; }
inline void QDataStream::setPrintableData( bool p )
{ printable = p; }
inline QDataStream &QDataStream::operator>>( UINT8 &i )
{ return *this >> (INT8&)i; }
inline QDataStream &QDataStream::operator>>( UINT16 &i )
{ return *this >> (INT16&)i; }
inline QDataStream &QDataStream::operator>>( UINT32 &i )
{ return *this >> (INT32&)i; }
inline QDataStream &QDataStream::operator<<( UINT8 i )
{ return *this << (INT8)i; }
inline QDataStream &QDataStream::operator<<( UINT16 i )
{ return *this << (INT16)i; }
inline QDataStream &QDataStream::operator<<( UINT32 i )
{ return *this << (INT32)i; }
inline QDataStream &QDataStream::operator<<( int i )
{ return *this << (INT32)i; }
inline QDataStream &QDataStream::operator<<( uint i )
{ return *this << (UINT32)i; }
#endif // QDSTREAM_H