]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - plugins/archivezip/zlibstream.h
reformat code! now the code is only ugly on the *inside*
[xonotic/netradiant.git] / plugins / archivezip / zlibstream.h
index 2e2e7d8f47fb7917a861f8ee9c93eab3631225d0..5e2b2096251e347f8f434d5ccd2163a790f5c988 100644 (file)
 ///
 /// - Uses z_stream to decompress the data stream on the fly.
 /// - Uses a buffer to reduce the number of times the wrapped stream must be read.
-class DeflatedInputStream : public InputStream
-{
-InputStream& m_istream;
-z_stream m_zipstream;
-enum unnamed0 { m_bufsize = 1024 };
-unsigned char m_buffer[m_bufsize];
+class DeflatedInputStream : public InputStream {
+    InputStream &m_istream;
+    z_stream m_zipstream;
+    enum unnamed0 { m_bufsize = 1024 };
+    unsigned char m_buffer[m_bufsize];
 
 public:
-DeflatedInputStream( InputStream& istream )
-       : m_istream( istream ){
-       m_zipstream.zalloc = 0;
-       m_zipstream.zfree = 0;
-       m_zipstream.opaque = 0;
-       m_zipstream.avail_in = 0;
-       inflateInit2( &m_zipstream, -MAX_WBITS );
-}
-~DeflatedInputStream(){
-       inflateEnd( &m_zipstream );
-}
-size_type read( byte_type* buffer, size_type length ){
-       m_zipstream.next_out = buffer;
-       m_zipstream.avail_out = static_cast<uInt>( length );
-       while ( m_zipstream.avail_out != 0 )
-       {
-               if ( m_zipstream.avail_in == 0 ) {
-                       m_zipstream.next_in = m_buffer;
-                       m_zipstream.avail_in = static_cast<uInt>( m_istream.read( m_buffer, m_bufsize ) );
-               }
-               if ( inflate( &m_zipstream, Z_SYNC_FLUSH ) != Z_OK ) {
-                       break;
-               }
-       }
-       return length - m_zipstream.avail_out;
-}
+    DeflatedInputStream(InputStream &istream)
+            : m_istream(istream)
+    {
+        m_zipstream.zalloc = 0;
+        m_zipstream.zfree = 0;
+        m_zipstream.opaque = 0;
+        m_zipstream.avail_in = 0;
+        inflateInit2(&m_zipstream, -MAX_WBITS);
+    }
+
+    ~DeflatedInputStream()
+    {
+        inflateEnd(&m_zipstream);
+    }
+
+    size_type read(byte_type *buffer, size_type length)
+    {
+        m_zipstream.next_out = buffer;
+        m_zipstream.avail_out = static_cast<uInt>( length );
+        while (m_zipstream.avail_out != 0) {
+            if (m_zipstream.avail_in == 0) {
+                m_zipstream.next_in = m_buffer;
+                m_zipstream.avail_in = static_cast<uInt>( m_istream.read(m_buffer, m_bufsize));
+            }
+            if (inflate(&m_zipstream, Z_SYNC_FLUSH) != Z_OK) {
+                break;
+            }
+        }
+        return length - m_zipstream.avail_out;
+    }
 };
 
 #endif