ibuf_size = page_size / sizeof(char);
ibuffer = new char [ibuf_size];
// } catch (...) {
-// delete [] ibuffer;
+// delete [] ibuffer;
// }
// Null get and set pointers.
{
sync();
if ( own_file_descriptor )
- this->close();
+ this->close();
delete [] ibuffer;
}
if ( io_mode & ios_in )
{
- mode = ios_in;
- *p++ = 'r';
+ mode = ios_in;
+ *p++ = 'r';
}
else if ( io_mode & ios_app )
{
- mode = ios_app;
- *p++ = 'a';
+ mode = ios_app;
+ *p++ = 'a';
}
else
{
- mode = ios_out;
- *p++ = 'w';
+ mode = ios_out;
+ *p++ = 'w';
}
if ( io_mode & ios_binary )
{
- mode |= ios_binary;
- *p++ = 'b';
+ mode |= ios_binary;
+ *p++ = 'b';
}
// Hard code the compression level
if ( io_mode & (ios_out | ios_app) )
{
- *p++ = '9';
+ *p++ = '9';
}
*p = '\0';
gzfilebuf::open( const char *name, ios_openmode io_mode )
{
if ( is_open() )
- return NULL;
+ return NULL;
char char_mode[10];
cvt_iomode( char_mode, io_mode );
if ( (file = gzopen(name, char_mode)) == NULL ) {
- // perror( "gzfilebuf::open(): " );
- errno = 0;
- return NULL;
+ // perror( "gzfilebuf::open(): " );
+ errno = 0;
+ return NULL;
}
own_file_descriptor = true;
gzfilebuf::attach( int file_descriptor, ios_openmode io_mode )
{
if ( is_open() )
- return NULL;
+ return NULL;
char char_mode[10];
cvt_iomode( char_mode, io_mode );
if ( (file = gzdopen(file_descriptor, char_mode)) == NULL ) {
- perror( "gzfilebuf::attach(): " );
- errno = 0;
- return NULL;
+ perror( "gzfilebuf::attach(): " );
+ errno = 0;
+ return NULL;
}
own_file_descriptor = false;
// cout << "closing ..." ;
if ( is_open() )
{
- sync();
- gzclose( file );
- file = NULL;
- // cout << "done" << endl;
+ sync();
+ gzclose( file );
+ file = NULL;
+ // cout << "done" << endl;
} else {
- // cout << "error" << endl;
+ // cout << "error" << endl;
}
return this;
{
#if 0
if ( !is_open() || !(mode & ios::out) )
- return EOF;
+ return EOF;
if ( !base() )
{
- if ( allocate() == EOF )
- return EOF;
- setg(0,0,0);
+ if ( allocate() == EOF )
+ return EOF;
+ setg(0,0,0);
}
else
{
- if (in_avail())
- {
- return EOF;
- }
-
- if (out_waiting())
- {
- if (flushbuf() == EOF)
- return EOF;
- }
+ if (in_avail())
+ {
+ return EOF;
+ }
+
+ if (out_waiting())
+ {
+ if (flushbuf() == EOF)
+ return EOF;
+ }
}
int bl = blen();
if ( c != EOF )
{
- *pptr() = c;
- pbump(1);
+ *pptr() = c;
+ pbump(1);
}
#endif
return 0;
gzfilebuf::sync()
{
if ( !is_open() )
- return EOF;
+ return EOF;
if ( pptr() != 0 && pptr() > pbase() )
- return flushbuf();
+ return flushbuf();
return 0;
}
int n = pptr() - q;
if ( gzwrite( file, q, n) < n )
- return traits_type::eof();
+ return traits_type::eof();
setp(0,0);
// cerr << "gzfilebuf::underflow(): gptr()=" << (void*)gptr() << endl;
// Error if the file not open for reading.
if ( !is_open() || !(mode & ios_in) )
- return traits_type::eof();
+ return traits_type::eof();
// If the input buffer is empty then try to fill it.
if ( gptr() != 0 && gptr() < egptr() )
{
- return int_type(*gptr());
+ return int_type(*gptr());
}
else
{
- return fillbuf() == EOF ? traits_type::eof() : int_type(*gptr());
+ return fillbuf() == EOF ? traits_type::eof() : int_type(*gptr());
}
}
int t = gzread( file, ibuffer, ibuf_size );
if ( t <= 0)
{
- // disable get area
- setg(0,0,0);
- return EOF;
+ // disable get area
+ setg(0,0,0);
+ return EOF;
}
// Set the input (get) pointers
setg( ibuffer, ibuffer, ibuffer+t );
// cerr << "gzfilebuf::fillbuf():"
-// << " t=" << t
-// << ", ibuffer=" << (void*)ibuffer
-// << ", ibuffer+t=" << (void*)(ibuffer+t) << endl;
+// << " t=" << t
+// << ", ibuffer=" << (void*)ibuffer
+// << ", ibuffer+t=" << (void*)(ibuffer+t) << endl;
return t;
}
gzifstream::open( const char *name, ios_openmode io_mode )
{
if ( !buffer.open( name, io_mode ) )
- clear( ios_failbit | ios_badbit );
+ clear( ios_failbit | ios_badbit );
else
- clear();
+ clear();
}
void
gzifstream::close()
{
if ( !buffer.close() )
- clear( ios_failbit | ios_badbit );
+ clear( ios_failbit | ios_badbit );
}
#endif