nlib
nn::nlib::FileInputStream Class Referencefinal

The class for file input streams. More...

#include "nn/nlib/FileInputStream.h"

+ Inheritance diagram for nn::nlib::FileInputStream:

Public Member Functions

errno_t Open (const char *filename) noexcept
 Opens the file in read-only mode. More...
 
errno_t Open (const wchar_t *filename) noexcept
 Opens the file in read-only mode. More...
 
errno_t FdOpen (nlib_fd fd) noexcept
 Makes an already-open file available for use by FileInputStream. More...
 
nlib_fd GetFd () const noexcept
 Returns the file descriptor. More...
 
Constructor, Destructor, and Initialization
constexpr FileInputStream () noexcept
 Instantiates the object with default parameters (default constructor). Requires initialization with Init() after execution.
 
virtual ~FileInputStream () noexcept override
 Destructor. Closes the file if it is open.
 
errno_t Init (const FileInputStreamSettings &settings) noexcept
 Initializes by specifying the behavior option. Returns 0 if successful. More...
 
errno_t Init () noexcept
 A parameter omitted version of the above function which passes settings as the default value.
 
- 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 file input streams.

Description
Supports only synchronous and sequential access. The class wraps the file API of each environment and has its own buffer.
The transition of the object state.
The overview of the object state transitions is described below:
dot_inline_dotgraph_6.png
Examples:
succinct/detection/detection.cpp, and succinct/kwlink/kwlink.cpp.

Definition at line 34 of file FileInputStream.h.

Member Function Documentation

◆ FdOpen()

nn::nlib::FileInputStream::FdOpen ( nlib_fd  fd)
noexcept

Makes an already-open file available for use by FileInputStream.

Parameters
[in]fdAn already-open nlib_fd-type value.
Returns
Returns 0 on success. Any other value indicates an error.
Description
If the Init function was not called ahead of time, it is called internally here.

◆ GetFd()

nn::nlib::FileInputStream::GetFd ( ) const
inlinenoexcept

Returns the file descriptor.

Returns
The file descriptor.

Definition at line 50 of file FileInputStream.h.

◆ Init()

nn::nlib::FileInputStream::Init ( const FileInputStreamSettings 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.

◆ Open() [1/2]

nn::nlib::FileInputStream::Open ( const char *  filename)
noexcept

Opens the file in read-only mode.

Parameters
[in]filenameThe path to the file.
Returns
Returns 0 on success. Any other value indicates an error.
Description
If the Init function was not called ahead of time, it is called internally here.

◆ Open() [2/2]

nn::nlib::FileInputStream::Open ( const wchar_t *  filename)
noexcept

Opens the file in read-only mode.

Parameters
[in]filenameThe path to the file.
Returns
Returns 0 on success. Any other value indicates an error.
Description
If the Init function was not called ahead of time, it is called internally here.

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