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


Generated at 16:17, 1995/06/30 by the webmaster at Troll Tech