nlib
nn::nlib::ZlibInputStream Class Referencefinal

The stream class for reading compressed data using zlib. More...

#include "nn/nlib/ZlibInputStream.h"

+ Inheritance diagram for nn::nlib::ZlibInputStream:

Public Member Functions

Constructor, Destructor, and Initialization
constexpr ZlibInputStream () noexcept
 Instantiates the object with default parameters (default constructor).
 
errno_t Init () noexcept
 A parameter omitted version of the above function which passes settings as the default value.
 
errno_t Init (const ZlibInputStreamSettings &settings) noexcept
 Initializes by specifying the behavior option. Returns 0 if successful. More...
 
- Public Member Functions inherited from nn::nlib::InputConverterStream
errno_t SetStream (InputStream *istr) noexcept
 Sets the input stream for reading the pre-converted data. More...
 
InputStreamGetStream () const noexcept
 Gets the input stream for reading the pre-converted data. More...
 
- Public Member Functions inherited from nn::nlib::InputStream
errno_t GetErrorValue () const noexcept
 Gets the error value. More...
 
size_t Pos () const noexcept
 Returns the current position in the stream. More...
 
uint64_t Pos64 () const noexcept
 Returns the current position in the stream as a 64-bit value. More...
 
bool IsEos () noexcept
 Returns true if the stream is finished being read through to the end. If the stream has not been read through to the end, or if an error occurs, the function returns false. More...
 
int Read () noexcept
 Reads one byte of data from the stream. More...
 
int Peek () noexcept
 Reads the next byte without consuming the stream. More...
 
size_t Skip (size_t nbytes) noexcept
 Skips over the number of bytes specified by nbytes. More...
 
size_t Read (void *ptr, size_t nbytes) noexcept
 Reads the number of bytes of data specified by nbytes into the memory region specified by ptr. More...
 
template<size_t N>
size_t Read (nlib_byte_t(&buf)[N]) noexcept
 A template overload of the above function.
 
bool Close () noexcept
 Closes the stream. Returns true if successful. More...
 
bool Mark (size_t readlimit) noexcept
 This function provides settings that allow you to return to the current load position using GoBackToMark(). More...
 
bool GoBackToMark () noexcept
 This function allows you to return to the load position that the last Mark() has been executed at. More...
 
bool IsMarkSupported () const noexcept
 This function returns true if this stream supports Mark() and GoBackToMark().
 
 operator bool () const
 Returns true if the object has been initialized and an error has not occurred inside, or returns false if an error has occurred inside.
 
constexpr InputStream () noexcept
 Instantiates the object with default parameters (default constructor). This function is called from the derived class.
 
virtual ~InputStream () noexcept
 Destructor. This function is called from the derived class.
 

Additional Inherited Members

- Protected Member Functions inherited from nn::nlib::InputStream
void SetBuffer (void *p, size_t nbytes, bool is_mark_supported, bool is_buf_readonly) noexcept
 Sets the buffer held by InputStream. More...
 
void SetError (errno_t e) const noexcept
 Sets an error to InputStream. More...
 

Detailed Description

The stream class for reading compressed data using zlib.

Description
Reads streaming data that has been uncompressed using zlib. Even large amounts of data can be streamed and read.
The method involves constructing the object, using the Init function to configure the buffer and the like, using the SetStream function to associate the base stream, and then reading the data in the same way as InputStream.
When you close this stream, the base stream is detached, reverting to the state before SetStream was called. The base stream itself is not closed.
The following errors can occur during the reading of data. errno error values are set for zlib errors.
  • If Z_DATA_ERROR -> EILSEQ.
  • If Z_NEED_DICT -> EILSEQ.
  • If Z_STREAM_ERROR -> EIO.
  • If Z_MEM_ERROR -> ENOMEM.
  • If Z_BUF_ERROR -> ENOBUFS.
  • If unexpected EOF found -> EOF.
  • If base stream fails -> EIO.
The following is a description of the behavior of the SetStream function.
The function calls inflateInit2 to initialize for the extraction of data. The windowBits parameter of inflateInit2 is currently set to 47. zalloc, zfree, and opaque for z_stream are all set to Z_NULL.
The errors returned by the inflateInit2 function of zlib are converted as follows.
  • Z_MEM_ERROR is converted to ENOMEM.
  • Z_STREAM_ERROR is converted to EINVAL.
  • Z_VERSION_ERROR is converted to ENOTSUP.
The transition of the object state.
The overview of the object state transitions is described below:
dot_inline_dotgraph_13.png
Examples:
misc/usezlib/usezlib.cpp.

Definition at line 53 of file ZlibInputStream.h.

Member Function Documentation

◆ Init()

nn::nlib::ZlibInputStream::Init ( const ZlibInputStreamSettings settings)
noexcept

Initializes by specifying the behavior option. Returns 0 if successful.

Parameters
[in]settingsBehavior options.
Return values
0Success.
EALREADYAlready initialized.
ENOMEMIndicates that internal memory allocation failed.
EINVALIndicates that the specification of behavior options was invalid.

The documentation for this class was generated from the following files: