Lysa  0.0
Lysa 3D Engine
ResourcesPackStreambuf Class Reference

Detailed Description

A custom std::streambuf that reads a bounded region of a pack file.

Provides a buffered, seekable stream over a contiguous byte range within a ResourcesPack file, enabling standard std::istream usage without extracting the resource to memory first.

+ Inheritance diagram for ResourcesPackStreambuf:

Public Member Functions

 ResourcesPackStreambuf (std::ifstream &file, const uint64 offset, const uint64 size, const std::size_t bufSize=DEFAULT_BUF_SIZE)
 

Static Public Attributes

static constexpr std::size_t DEFAULT_BUF_SIZE = 4096
 

Protected Member Functions

int_type underflow () override
 
virtual void transform (char *data, std::size_t size)
 

Constructor & Destructor Documentation

ResourcesPackStreambuf ( std::ifstream &  file,
const uint64  offset,
const uint64  size,
const std::size_t  bufSize = DEFAULT_BUF_SIZE 
)
inline

Member Function Documentation

virtual void transform ( char *  data,
std::size_t  size 
)
inlineprotectedvirtual

Hook called with each newly read chunk before it is exposed to the stream. Subclasses can override this to transform the data in place (e.g. decryption). The default implementation does nothing.

int_type underflow ( )
inlineoverrideprotected

Member Data Documentation

constexpr std::size_t DEFAULT_BUF_SIZE = 4096
staticconstexpr