24#include <zypp-core/base/LogControl.h>
25#include <zypp-core/base/LogTools.h>
28#include <zypp-core/base/GzStream>
38 namespace gzstream_detail
80 if ( mode_r == std::ios_base::in )
82 _fd = ::open( name_r, O_RDONLY | O_CLOEXEC );
85 else if ( mode_r == std::ios_base::out )
87 _fd = ::open( name_r, O_WRONLY|O_CREAT|O_CLOEXEC, 0666 );
118 int r = gzclose(
_file );
130 _mode = std::ios_base::openmode(0);
145 int read = gzread(
_file, buffer_r, maxcount_r );
162 if ( (written = gzwrite(
_file, buffer_r, count_r )) == 0 )
165 return( written == count_r );
176 z_off_t ret = gzseek(
_file, off_r, way_r );
190 z_off_t ret = gztell(
_file );
199 off_t pos = lseek (
_fd, 0, SEEK_CUR);
bool writeData(const char *buffer_r, std::streamsize count_r)
off_t seekTo(off_t off_r, std::ios_base::seekdir way_r, std::ios_base::openmode omode_r)
int _fd
file descriptor of the compressed file
bool openImpl(const char *name_r, std::ios_base::openmode mode_r)
off_t compressed_tell() const
Tell the file position in the compressed file.
std::streamsize readData(char *buffer_r, std::streamsize maxcount_r)
std::ios_base::openmode _mode
Easy-to use interface to the ZYPP dependency resolver.
int _errno
errno, valid if zError is Z_ERRNO
int _zError
The zlib error code.
std::string strerror() const
Return string describing the zlib error code.