-// A C++ I/O streams interface to the zlib gz* functions
-//
+/**
+ * \file zfstream.hxx
+ * A C++ I/O streams interface to the zlib gz* functions.
+ */
+
// Written by Bernie Bright, 1998
// Based on zlib/contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
//
#ifndef _zfstream_hxx
#define _zfstream_hxx
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
#include <simgear/compiler.h>
#ifdef HAVE_ZLIB
#endif // SG_HAVE_STD_INCLUDES
-//-----------------------------------------------------------------------------
-//
-//
-//
+/**
+ * A C++ I/O streams interface to the zlib gz* functions.
+ */
class gzfilebuf : public streambuf
{
public:
// typedef char_traits<char>::off_type off_type;
#endif
+ /** Constructor */
gzfilebuf();
+
+ /** Destructor */
virtual ~gzfilebuf();
+ /**
+ * Open a stream
+ * @param name file name
+ * @param io_mode mdoe flags
+ * @return file stream
+ */
gzfilebuf* open( const char* name, ios_openmode io_mode );
+
+ /**
+ * Attach to an existing file descriptor
+ * @param file_descriptor file descriptor
+ * @param io_mode mode flags
+ * @return file stream
+ */
gzfilebuf* attach( int file_descriptor, ios_openmode io_mode );
+
+ /** Close stream */
gzfilebuf* close();
-// int setcompressionlevel( int comp_level );
-// int setcompressionstrategy( int comp_strategy );
+ // int setcompressionlevel( int comp_level );
+ // int setcompressionstrategy( int comp_strategy );
+
+ /** @return true if open, false otherwise */
bool is_open() const { return (file != NULL); }
+
+ /** @return stream position */
virtual streampos seekoff( streamoff off, ios_seekdir way, int which );
+
+ /** sync the stream */
virtual int sync();
protected:
void operator= ( const gzfilebuf& );
};
-//-----------------------------------------------------------------------------
-//
-//
-//
+/**
+ * document me
+ */
struct gzifstream_base
{
gzifstream_base() {}