#include "oct-stream.h"
Public Member Functions | |
stream (base_stream *bs=nullptr) | |
stream (const stream &)=default | |
~stream (void)=default | |
void | clearerr (void) |
OCTINTERP_API void | close (void) |
std::string | encoding (void) |
OCTINTERP_API bool | eof (void) const |
OCTINTERP_API std::string | error (bool clear, int &err_num) |
std::string | error (bool clear=false) |
void | error (const char *msg) |
void | error (const std::string &msg) |
int | file_number (void) |
OCTINTERP_API mach_info::float_format | float_format (void) const |
OCTINTERP_API int | flush (void) |
OCTINTERP_API std::string | getl (const octave_value &max_len, bool &err, const std::string &who) |
OCTINTERP_API std::string | getl (octave_idx_type max_len, bool &err, const std::string &who) |
OCTINTERP_API std::string | gets (const octave_value &max_len, bool &err, const std::string &who) |
OCTINTERP_API std::string | gets (octave_idx_type max_len, bool &err, const std::string &who) |
std::istream * | input_stream (void) |
OCTINTERP_API bool | is_open (void) const |
bool | is_valid (void) const |
OCTINTERP_API int | mode (void) const |
OCTINTERP_API std::string | name (void) const |
bool | ok (void) const |
operator bool () const | |
stream & | operator= (const stream &)=default |
OCTINTERP_API octave_value_list | oscanf (const octave_value &fmt, const std::string &who) |
OCTINTERP_API octave_value_list | oscanf (const std::string &fmt, const std::string &who) |
std::ostream * | output_stream (void) |
OCTINTERP_API int | printf (const octave_value &fmt, const octave_value_list &args, const std::string &who) |
OCTINTERP_API int | printf (const std::string &fmt, const octave_value_list &args, const std::string &who) |
OCTINTERP_API int | puts (const octave_value &s, const std::string &who) |
OCTINTERP_API int | puts (const std::string &s, const std::string &who) |
OCTINTERP_API octave_value | read (const Array< double > &size, octave_idx_type block_size, oct_data_conv::data_type input_type, oct_data_conv::data_type output_type, octave_idx_type skip, mach_info::float_format flt_fmt, octave_idx_type &count) |
OCTINTERP_API int | rewind (void) |
OCTINTERP_API octave_value | scanf (const octave_value &fmt, const Array< double > &size, octave_idx_type &count, const std::string &who) |
OCTINTERP_API octave_value | scanf (const std::string &fmt, const Array< double > &size, octave_idx_type &count, const std::string &who) |
OCTINTERP_API int | seek (const octave_value &offset, const octave_value &origin) |
OCTINTERP_API int | seek (off_t offset, int origin) |
OCTINTERP_API bool | skip_bytes (std::size_t n_elts) |
OCTINTERP_API off_t | skipl (const octave_value &count, bool &err, const std::string &who) |
OCTINTERP_API off_t | skipl (off_t count, bool &err, const std::string &who) |
OCTINTERP_API off_t | tell (void) |
OCTINTERP_API octave_value | textscan (const std::string &fmt, octave_idx_type ntimes, const octave_value_list &options, const std::string &who, octave_idx_type &count) |
template<typename T > | |
octave_idx_type | write (const Array< T > &data, octave_idx_type block_size, oct_data_conv::data_type output_type, octave_idx_type skip, mach_info::float_format flt_fmt) |
template<typename T > | |
OCTINTERP_API octave_idx_type | write (const Array< T > &data, octave_idx_type block_size, oct_data_conv::data_type output_type, octave_idx_type skip, mach_info::float_format flt_fmt) |
OCTINTERP_API octave_idx_type | write (const octave_value &data, octave_idx_type block_size, oct_data_conv::data_type output_type, octave_idx_type skip, mach_info::float_format flt_fmt) |
OCTINTERP_API bool | write_bytes (const void *data, std::size_t n_elts) |
Static Public Member Functions | |
static OCTINTERP_API std::string | mode_as_string (int mode) |
Private Member Functions | |
OCTINTERP_API octave_value | finalize_read (std::list< void * > &input_buf_list, octave_idx_type input_buf_elts, octave_idx_type elts_read, octave_idx_type nr, octave_idx_type nc, oct_data_conv::data_type input_type, oct_data_conv::data_type output_type, mach_info::float_format ffmt) |
void | invalid_operation (const std::string &who, const char *rw) |
bool | stream_ok (bool clear=true) const |
Private Attributes | |
std::shared_ptr< base_stream > | m_rep |
Definition at line 304 of file oct-stream.h.
|
inline |
Definition at line 311 of file oct-stream.h.
|
default |
|
default |
|
inline |
void stream::close | ( | void | ) |
Definition at line 6403 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by stream_list::clear(), and stream_list::remove().
|
inline |
Definition at line 447 of file oct-stream.h.
References m_rep.
Referenced by stream_list::get_info().
bool stream::eof | ( | void | ) | const |
Definition at line 7300 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by Ffeof(), Fsscanf(), load_save_system::load_vars(), and read_data().
std::string stream::error | ( | bool | clear, |
int & | err_num | ||
) |
Definition at line 7311 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by do_stream_open(), Fferror(), Ffopen(), finalize_read(), Fsprintf(), Fsscanf(), getl(), gets(), oscanf(), printf(), puts(), read(), scanf(), scanf_internal(), seek(), skipl(), textscan_internal(), and write().
|
inline |
Definition at line 415 of file oct-stream.h.
References error().
|
inline |
|
inline |
Definition at line 423 of file oct-stream.h.
References m_rep.
|
inline |
Definition at line 431 of file oct-stream.h.
References m_rep.
Referenced by Fdup2(), Ffcntl(), and stream_list::insert().
|
private |
Definition at line 6529 of file oct-stream.cc.
References oct_data_conv::dt_char, oct_data_conv::dt_double, oct_data_conv::dt_int16, oct_data_conv::dt_int32, oct_data_conv::dt_int64, oct_data_conv::dt_int8, oct_data_conv::dt_logical, oct_data_conv::dt_schar, oct_data_conv::dt_single, oct_data_conv::dt_uchar, oct_data_conv::dt_uint16, oct_data_conv::dt_uint32, oct_data_conv::dt_uint64, oct_data_conv::dt_uint8, oct_data_conv::dt_unknown, error(), FILL_TABLE_ROW, float_format(), flt_fmt_ieee_big_endian, flt_fmt_ieee_little_endian, flt_fmt_unknown, and words_big_endian().
Referenced by read().
mach_info::float_format stream::float_format | ( | void | ) | const |
Definition at line 7344 of file oct-stream.cc.
References flt_fmt_unknown, m_rep, and stream_ok().
Referenced by finalize_read(), stream_list::get_info(), stream_list::list_open_files(), and write().
int stream::flush | ( | void | ) |
Definition at line 6135 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by Ffflush().
std::string stream::getl | ( | const octave_value & | max_len, |
bool & | err, | ||
const std::string & | who | ||
) |
Definition at line 6157 of file oct-stream.cc.
References convert_to_valid_int(), error(), getl(), octave_value::is_defined(), and textscan_format_list::who.
std::string stream::getl | ( | octave_idx_type | max_len, |
bool & | err, | ||
const std::string & | who | ||
) |
Definition at line 6146 of file oct-stream.cc.
References m_rep, stream_ok(), and textscan_format_list::who.
std::string stream::gets | ( | const octave_value & | max_len, |
bool & | err, | ||
const std::string & | who | ||
) |
Definition at line 6192 of file oct-stream.cc.
References convert_to_valid_int(), error(), gets(), octave_value::is_defined(), and textscan_format_list::who.
std::string stream::gets | ( | octave_idx_type | max_len, |
bool & | err, | ||
const std::string & | who | ||
) |
Definition at line 6181 of file oct-stream.cc.
References m_rep, stream_ok(), and textscan_format_list::who.
|
inline |
Definition at line 452 of file oct-stream.h.
References m_rep.
Referenced by Fdlmread(), and read().
|
inlineprivate |
bool stream::is_open | ( | void | ) | const |
Definition at line 6392 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by base_stream::close().
|
inline |
Definition at line 433 of file oct-stream.h.
References m_rep.
Referenced by stream_list::clear(), Fsprintf(), Fsscanf(), stream_list::get_info(), stream_list::remove(), and textscan_internal().
int stream::mode | ( | void | ) | const |
Definition at line 7333 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by stream_list::get_info(), stream_list::list_open_files(), and mode_as_string().
|
static |
Definition at line 7355 of file oct-stream.cc.
References mode(), and trunc().
Referenced by stream_list::get_info(), and stream_list::list_open_files().
std::string stream::name | ( | void | ) | const |
Definition at line 7322 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by stream_list::clear(), base_stream::file_number(), stream_list::get_file_number(), stream_list::get_info(), and stream_list::list_open_files().
|
inline |
|
inline |
Definition at line 437 of file oct-stream.h.
References ok().
octave_value_list stream::oscanf | ( | const octave_value & | fmt, |
const std::string & | who | ||
) |
Definition at line 7199 of file oct-stream.cc.
References do_string_escapes(), error(), octave_value::is_sq_string(), octave_value::is_string(), oscanf(), and octave_value::string_value().
octave_value_list stream::oscanf | ( | const std::string & | fmt, |
const std::string & | who | ||
) |
Definition at line 7188 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by Fsscanf(), oscanf(), and scanf_internal().
|
inline |
Definition at line 457 of file oct-stream.h.
References m_rep.
Referenced by Ffdisp(), base_stream::preferred_output_stream(), skip_bytes(), and write_bytes().
int stream::printf | ( | const octave_value & | fmt, |
const octave_value_list & | args, | ||
const std::string & | who | ||
) |
Definition at line 7244 of file oct-stream.cc.
References do_string_escapes(), error(), octave_value::is_sq_string(), octave_value::is_string(), printf(), and octave_value::string_value().
int stream::printf | ( | const std::string & | fmt, |
const octave_value_list & | args, | ||
const std::string & | who | ||
) |
Definition at line 7232 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by Fsprintf(), printf(), and printf_internal().
int stream::puts | ( | const octave_value & | s, |
const std::string & | who | ||
) |
Definition at line 7281 of file oct-stream.cc.
References error(), octave_value::is_string(), puts(), and octave_value::string_value().
int stream::puts | ( | const std::string & | s, |
const std::string & | who | ||
) |
Definition at line 7268 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by puts(), and puts_internal().
octave_value stream::read | ( | const Array< double > & | size, |
octave_idx_type | block_size, | ||
oct_data_conv::data_type | input_type, | ||
oct_data_conv::data_type | output_type, | ||
octave_idx_type | skip, | ||
mach_info::float_format | flt_fmt, | ||
octave_idx_type & | count | ||
) |
Definition at line 6617 of file oct-stream.cc.
References oct_data_conv::data_type_size(), error(), error_if(), finalize_read(), get_size(), input_stream(), invalid_operation(), max(), and stream_ok().
Referenced by do_fread(), and read_data().
int stream::rewind | ( | void | ) |
Definition at line 6386 of file oct-stream.cc.
References seek(), and SEEK_SET.
Referenced by Ffrewind().
octave_value stream::scanf | ( | const octave_value & | fmt, |
const Array< double > & | size, | ||
octave_idx_type & | count, | ||
const std::string & | who | ||
) |
Definition at line 7164 of file oct-stream.cc.
References do_string_escapes(), error(), octave_value::is_sq_string(), octave_value::is_string(), Matrix, scanf(), and octave_value::string_value().
octave_value stream::scanf | ( | const std::string & | fmt, |
const Array< double > & | size, | ||
octave_idx_type & | count, | ||
const std::string & | who | ||
) |
Definition at line 7152 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by Fsscanf(), scanf(), and scanf_internal().
int stream::seek | ( | const octave_value & | offset, |
const octave_value & | origin | ||
) |
Definition at line 6319 of file oct-stream.cc.
References convert_to_valid_int(), error(), octave_value::is_string(), seek(), SEEK_CUR, SEEK_END, SEEK_SET, octave_int< T >::value(), octave_value::xint64_scalar_value(), and octave_value::xstring_value().
int stream::seek | ( | off_t | offset, |
int | origin | ||
) |
Definition at line 6258 of file oct-stream.cc.
References clearerr(), m_rep, SEEK_CUR, SEEK_END, SEEK_SET, and stream_ok().
Referenced by Ffseek(), rewind(), seek(), and skip_bytes().
bool stream::skip_bytes | ( | std::size_t | n_elts | ) |
Definition at line 7006 of file oct-stream.cc.
References output_stream(), seek(), SEEK_CUR, SEEK_END, SEEK_SET, and tell().
Referenced by write().
off_t stream::skipl | ( | const octave_value & | count, |
bool & | err, | ||
const std::string & | who | ||
) |
Definition at line 6227 of file oct-stream.cc.
References convert_to_valid_int(), error(), octave_value::is_defined(), octave_value::is_scalar_type(), isinf(), octave_value::scalar_value(), skipl(), and textscan_format_list::who.
off_t stream::skipl | ( | off_t | count, |
bool & | err, | ||
const std::string & | who | ||
) |
Definition at line 6216 of file oct-stream.cc.
References m_rep, stream_ok(), and textscan_format_list::who.
|
inlineprivate |
off_t stream::tell | ( | void | ) |
Definition at line 6375 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by Fftell(), Fsscanf(), and skip_bytes().
octave_value stream::textscan | ( | const std::string & | fmt, |
octave_idx_type | ntimes, | ||
const octave_value_list & | options, | ||
const std::string & | who, | ||
octave_idx_type & | count | ||
) |
Definition at line 7222 of file oct-stream.cc.
References m_rep, and stream_ok().
Referenced by textscan_internal().
octave_idx_type stream::write | ( | const Array< T > & | data, |
octave_idx_type | block_size, | ||
oct_data_conv::data_type | output_type, | ||
octave_idx_type | skip, | ||
mach_info::float_format | flt_fmt | ||
) |
Definition at line 7050 of file oct-stream.cc.
References convert_data(), Array< T, Alloc >::data(), oct_data_conv::data_type_size(), flt_fmt_ieee_big_endian, flt_fmt_ieee_little_endian, Array< T, Alloc >::numel(), OCTAVE_LOCAL_BUFFER, skip_bytes(), words_big_endian(), and write_bytes().
OCTINTERP_API octave_idx_type stream::write | ( | const Array< T > & | data, |
octave_idx_type | block_size, | ||
oct_data_conv::data_type | output_type, | ||
octave_idx_type | skip, | ||
mach_info::float_format | flt_fmt | ||
) |
octave_idx_type stream::write | ( | const octave_value & | data, |
octave_idx_type | block_size, | ||
oct_data_conv::data_type | output_type, | ||
octave_idx_type | skip, | ||
mach_info::float_format | flt_fmt | ||
) |
Definition at line 6810 of file oct-stream.cc.
References error(), float_format(), flt_fmt_unknown, invalid_operation(), stream_ok(), and octave_value::write().
Referenced by do_fwrite(), and write_data().
bool stream::write_bytes | ( | const void * | data, |
std::size_t | n_elts | ||
) |
|
private |
Definition at line 467 of file oct-stream.h.
Referenced by clearerr(), close(), encoding(), eof(), error(), file_number(), float_format(), flush(), getl(), gets(), input_stream(), invalid_operation(), is_open(), is_valid(), mode(), name(), ok(), oscanf(), output_stream(), printf(), puts(), scanf(), seek(), skipl(), stream_ok(), tell(), and textscan().