/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: XDataInputStream.idl,v $
 *
 *  $Revision: 1.12 $
 *
 *  last change: $Author: rt $ $Date: 2005-09-09 15:31:08 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/
#ifndef __com_sun_star_io_XDataInputStream_idl__
#define __com_sun_star_io_XDataInputStream_idl__

#ifndef __com_sun_star_io_XInputStream_idl__
#include <com/sun/star/io/XInputStream.idl>
#endif

#ifndef __com_sun_star_io_IOException_idl__
#include <com/sun/star/io/IOException.idl>
#endif


//=============================================================================

module com {  module sun {  module star {  module io {

//=============================================================================

// DocMerge from xml: interface com::sun::star::io::XDataInputStream
/** makes it possible to read machine-independent simple data types from a
    stream.
    @see com::sun::star::io::XDataOutputStream
 */
published interface XDataInputStream: com::sun::star::io::XInputStream
{
    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readBoolean
    /** reads in a boolean. It is an 8-bit value. 0 means FALSE; all
        other values mean TRUE.
     */
    byte readBoolean()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readByte
    /** reads an 8-bit byte.
     */
    byte readByte()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readChar
    /** reads a 16-bit unicode character.
     */
    char readChar()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readShort
    /** reads a 16-bit big endian integer.
     */
    short readShort()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readLong
    /** reads a 32-bit big endian integer.
     */
    long readLong()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readHyper
    /** reads a 64-bit big endian integer.
     */
    hyper readHyper()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readFloat
    /** reads a 32-bit IEEE float.
     */
    float readFloat()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readDouble
    /** reads a 64-bit IEEE double.
     */
    double readDouble()
            raises( com::sun::star::io::IOException );

    //-------------------------------------------------------------------------

    // DocMerge from xml: method com::sun::star::io::XDataInputStream::readUTF
    /** reads a string of UTF encoded characters.
     */
    string readUTF()
            raises( com::sun::star::io::IOException );

};

//=============================================================================

}; }; }; };

/*=============================================================================

=============================================================================*/
#endif
