nlib
nn::nlib::MemoryInputStream Class Referencefinal

The class for creating an input stream that makes use of memory. More...

#include "nn/nlib/MemoryInputStream.h"

+ Inheritance diagram for nn::nlib::MemoryInputStream:

Public Member Functions

Constructor, Destructor, and Initialization
constexpr MemoryInputStream () noexcept
 Instantiates the object with default parameters (default constructor). Requires initialization with Init() after execution.
 
virtual ~MemoryInputStream () noexcept override
 Destructor.
 
template<class T , size_t N>
constexpr MemoryInputStream (const T(&buf)[N]) noexcept
 Constructs and initializes MemoryInputStream. More...
 
constexpr MemoryInputStream (const void *buf, size_t n) noexcept
 Constructs and initializes MemoryInputStream. More...
 
template<class T , size_t N>
errno_t Init (const T(&buf)[N]) noexcept
 Initializes MemoryInputStream and makes it available for use. More...
 
errno_t Init (const void *buf, size_t n) noexcept
 Initializes MemoryInputStream and makes it available for use. 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 class for creating an input stream that makes use of memory.

Description
A memory region is allocated as a backing store by the user at initialization.
The following sample code shows how to construct MemoryInputStream.
nlib_ns::MemoryInputStream is1(&buf[0], kBufSize);
is3.Init(&buf[0], kBufSize);
is4.Init(buf);
The transition of the object state.
The overview of the object state transitions is described below:
dot_inline_dotgraph_8.png
Examples:
exi/multithread/multithread.cpp, exi/script/script.cpp, exi/serializer/serializer.cpp, exi/simple1/simple1.cpp, exi/simple2/simple2.cpp, exi/textparser/textparser.cpp, misc/usezlib/usezlib.cpp, msgpack/json/json.cpp, msgpack/msgpack2/msgpack2.cpp, and msgpack/usertype/usertype.cpp.

Definition at line 23 of file MemoryInputStream.h.

Constructor & Destructor Documentation

◆ MemoryInputStream() [1/2]

template<class T , size_t N>
nn::nlib::MemoryInputStream::MemoryInputStream ( const T(&)  buf[N])
inlineexplicitnoexcept

Constructs and initializes MemoryInputStream.

Parameters
[in]bufThe array that is referenced from the stream.

Definition at line 30 of file MemoryInputStream.h.

◆ MemoryInputStream() [2/2]

nn::nlib::MemoryInputStream::MemoryInputStream ( const void *  buf,
size_t  n 
)
inlinenoexcept

Constructs and initializes MemoryInputStream.

Parameters
[in]bufA pointer to a memory region.
[in]nThe size of the memory region.

Definition at line 36 of file MemoryInputStream.h.

Member Function Documentation

◆ Init() [1/2]

template<class T , size_t N>
nn::nlib::MemoryInputStream::Init ( const T(&)  buf[N])
inlinenoexcept

Initializes MemoryInputStream and makes it available for use.

Parameters
[in]bufThe array that is referenced from the stream.
Returns
Returns 0 on success.
Description
Initializes MemoryInputStream, specifying an array.

Definition at line 41 of file MemoryInputStream.h.

◆ Init() [2/2]

nn::nlib::MemoryInputStream::Init ( const void *  buf,
size_t  n 
)
inlinenoexcept

Initializes MemoryInputStream and makes it available for use.

Parameters
[in]bufA pointer to a memory region.
[in]nThe size of the memory region.
Returns
Returns 0 on success.
Description
Initializes MemoryInputStream with a pointer to a memory region and its size specified.

Definition at line 45 of file MemoryInputStream.h.


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