]> git.mxchange.org Git - simgear.git/blobdiff - simgear/misc/zfstream.hxx
Update the SoundSample api so we can request that a copy of the sample be
[simgear.git] / simgear / misc / zfstream.hxx
index ddd63011f9a8e89ee39cccacf5af4e2f938ff658..e226166c985bff5ef7db4ab0da2fbab4796e2061 100644 (file)
@@ -1,5 +1,8 @@
-//  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
-#  include <zlib.h>
-#else
-#  include <simgear/zlib/zlib.h>
-#endif
-
-// At least Irix needs this
-#ifdef SG_HAVE_NATIVE_SGI_COMPILERS
-#include <char_traits.h>
-SG_USING_STD(char_traits);
-#endif
+#include <zlib.h>
 
 #ifdef SG_HAVE_STD_INCLUDES
 
@@ -81,8 +70,6 @@ SG_USING_STD(streamoff);
 
 #if defined(__GNUC__) && __GNUC_MINOR__ < 8
 #  define ios_binary   ios::bin
-#elif defined( SG_HAVE_NATIVE_SGI_COMPILERS )
-#  define ios_binary   0
 #else
 #  define ios_binary   ios::binary
 #endif
@@ -96,11 +83,14 @@ SG_USING_STD(streamoff);
 
 #endif // SG_HAVE_STD_INCLUDES
 
-//-----------------------------------------------------------------------------
-//
-//
-//
+/**
+ * A C++ I/O streams interface to the zlib gz* functions.
+ */
+#ifdef SG_NEED_STREAMBUF_HACK
+class gzfilebuf : public __streambuf
+#else
 class gzfilebuf : public streambuf
+#endif
 {
 public:
 
@@ -111,23 +101,51 @@ 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:
 
     virtual int_type underflow();
+#ifndef SG_HAVE_STD_INCLUDES
     virtual int_type overflow( int_type c = traits_type::eof() );
+#else
+    virtual int_type overflow( int_type c = streambuf::traits_type::eof() );
+#endif
 
 private:
 
@@ -155,10 +173,9 @@ private:
     void operator= ( const gzfilebuf& );
 };
 
-//-----------------------------------------------------------------------------
-//
-// 
-//
+/**
+ * document me
+ */
 struct gzifstream_base
 {
     gzifstream_base() {}