JASSv2
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
JASS::instream_directory_iterator Class Reference

Subclass of instream for reading data from multiple files in a directory (as if they were all concatinated). More...

#include <instream_directory_iterator.h>

Inheritance diagram for JASS::instream_directory_iterator:
Inheritance graph
[legend]
Collaboration diagram for JASS::instream_directory_iterator:
Collaboration graph
[legend]

Public Member Functions

 instream_directory_iterator (const std::string &directory_name)
 Constructor. More...
 
virtual ~instream_directory_iterator ()
 Destructor.
 
virtual void read (document &buffer)
 Read buffer.contents.size() bytes of data into buffer.contents, resizing on eof. More...
 
- Public Member Functions inherited from JASS::instream
 instream (std::shared_ptr< instream > &source, std::shared_ptr< allocator > &memory)
 Constructor. More...
 
 instream (std::shared_ptr< instream > &source)
 Constructor. More...
 
 instream (void)
 Constructor.
 
virtual ~instream ()
 Destructor. More...
 
size_t fetch (void *buffer, size_t bytes)
 fetch() generates a document object, sets its contents to the passed buffer, calls read() and returns the number of bytes of data read More...
 

Static Public Member Functions

static void unittest (void)
 Unit test this class.
 

Protected Attributes

std::filesystem::directory_iterator source
 Use the C++17 directory iterator.
 
std::filesystem::directory_iterator current
 Where we are in the current iteration.
 
std::filesystem::directory_iterator last
 The point where the iterator finishes iterating.
 
std::shared_ptr< instreamreader
 A chain of instram objects responsible for sourcing the data.
 
size_t bytes_read
 The number of bytes that have been read from the file.
 
- Protected Attributes inherited from JASS::instream
std::shared_ptr< instreamsource
 If this object is reading from another instream then this is that instream.
 
std::shared_ptr< allocatormemory
 Any and all memory allocation must happen using this object.
 

Detailed Description

Subclass of instream for reading data from multiple files in a directory (as if they were all concatinated).

Constructor & Destructor Documentation

◆ instream_directory_iterator()

JASS::instream_directory_iterator::instream_directory_iterator ( const std::string &  directory_name)

Constructor.

Parameters
directory_name[in] The name of the directory to search within

Member Function Documentation

◆ read()

void JASS::instream_directory_iterator::read ( document buffer)
virtual

Read buffer.contents.size() bytes of data into buffer.contents, resizing on eof.

Parameters
buffer[out] buffer.contents.size() bytes of data are read from source into buffer which is resized to the number of bytes read on eof.

Implements JASS::instream.


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