MADNESS 0.10.1
|
Wraps an archive around a text filestream for input. More...
#include <text_fstream_archive.h>
Public Member Functions | |
TextFstreamInputArchive (const char *filename=nullptr, std::ios_base::openmode mode=std::ios_base::in) | |
Default constructor. | |
template<class T > | |
void | check_end_tag () const |
Read the closing "cookie" tag. | |
template<class T > | |
void | check_start_tag (bool end=false) const |
Check the "cookie" tag in the archive for runtime type-checking. | |
void | close () |
Close the filestream. | |
void | load (char *t, long n) const |
Load characters from the filestream, without converting escaped characters. | |
template<class T > | |
std::enable_if< madness::is_istreammable_v< T > >::type | load (T *t, long n) const |
Load from the filestream. | |
void | load (unsigned char *t, long n) const |
Load characters from the filestream, interpreting escaped characters along the way. | |
void | open (const char *filename, std::ios_base::openmode mode=std::ios_base::in) |
Open the filestream. | |
Public Member Functions inherited from madness::archive::BaseArchive | |
BaseArchive () | |
Private Member Functions | |
void | eat_eol () const |
Eat the EOL after each entry to enable a char -by-char read of strings. | |
Private Attributes | |
std::ifstream | is |
The filestream. | |
Additional Inherited Members | |
Public Types inherited from madness::archive::BaseInputArchive | |
using | is_loading = std::true_type |
Type used by Boost.Serialization to determine if this object is an input archive. | |
Public Types inherited from madness::archive::BaseArchive | |
using | is_loading = std::false_type |
Type used by Boost.Serialization to determine if this object is an input archive. | |
using | is_saving = std::false_type |
Type used by Boost.Serialization to determine if this object is an output archive. | |
Static Public Attributes inherited from madness::archive::BaseInputArchive | |
static constexpr bool | is_input_archive = true |
Flag to determine if this object is an input archive. | |
Static Public Attributes inherited from madness::archive::BaseArchive | |
static constexpr bool | is_archive = true |
Flag to determine if this object is an archive. | |
static constexpr bool | is_input_archive = false |
Flag to determine if this object is an input archive. | |
static constexpr bool | is_output_archive = false |
Flag to determine if this object is an output archive. | |
static constexpr bool | is_parallel_archive = false |
Flag to determine if this object is a parallel archive. | |
Wraps an archive around a text filestream for input.
|
inline |
Default constructor.
The filename and open modes are optional here; they can be specified later by calling open()
.
[in] | filename | Name of the file to read from. |
[in] | mode | I/O attributes for opening the file. |
References madness::filename, and open().
|
inline |
Read the closing "cookie" tag.
T | The expected data type between the tags. |
Referenced by madness::archive::ArchivePrePostImpl< TextFstreamInputArchive, T >::postamble_load().
|
inline |
Check the "cookie" tag in the archive for runtime type-checking.
T | The expected data type. |
MadnessException | if the tag does not match that of the expected type. |
References madness::archive::archive_type_names, bufsize, is, and MADNESS_EXCEPTION.
Referenced by madness::archive::ArchivePrePostImpl< TextFstreamInputArchive, T >::preamble_load().
|
inline |
|
private |
Eat the EOL after each entry to enable a char
-by-char
read of strings.
References is, and MADNESS_EXCEPTION.
void madness::archive::TextFstreamInputArchive::load | ( | char * | t, |
long | n | ||
) | const |
Load characters from the filestream, without converting escaped characters.
[out] | t | Where to put the loaded characters. |
[in] | n | The number of characters to be loaded. |
References eat_eol(), is, and MADNESS_EXCEPTION.
|
inline |
Load from the filestream.
The function only appears (due to enable_if
) if T
is serializable.
T | The type of data to be read. |
[out] | t | Where to put the loaded data. |
[in] | n | The number of data items to be loaded. |
References eat_eol().
void madness::archive::TextFstreamInputArchive::load | ( | unsigned char * | t, |
long | n | ||
) | const |
void madness::archive::TextFstreamInputArchive::open | ( | const char * | filename, |
std::ios_base::openmode | mode = std::ios_base::in |
||
) |
Open the filestream.
[in] | filename | The name of the file. |
[in] | mode | I/O attributes for opening the file. |
References ARCHIVE_MAJOR_VERSION, ARCHIVE_MINOR_VERSION, bufsize, madness::filename, is, and MADNESS_EXCEPTION.
Referenced by TextFstreamInputArchive().
|
mutableprivate |