16 #ifndef INCLUDE_NN_NLIB_FILEOUTPUTSTREAM_H_ 17 #define INCLUDE_NN_NLIB_FILEOUTPUTSTREAM_H_ 31 buffer_size(buffer_size_) {}
37 : fd_(
NLIB_FD_INVALID), buf_(
nullptr), buf_size_(0), is_internal_buffer_(false) {}
41 return this->Init(settings);
50 return Open(filename, flags, 0644);
55 return Open(filename, flags, 0644);
64 virtual bool PushBuffer_(
const void* p,
size_t nbytes,
67 virtual bool WriteGather_(
const nlib_fd_iovec* iov,
int iovcnt) NLIB_NOEXCEPT
NLIB_OVERRIDE;
73 bool is_internal_buffer_;
79 #endif // INCLUDE_NN_NLIB_FILEOUTPUTSTREAM_H_ constexpr FileOutputStreamSettings() noexcept
デフォルトコンストラクタです。デフォルト値を設定します。
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
ファイルストリームの設定情報を格納する構造体です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
nlib_fd GetFd() const noexcept
ファイルディスクリプタを返します。
size_t buffer_size
バッファサイズです。
errno_t Init() noexcept
ストリームをデフォルトの設定で初期化します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
constexpr FileOutputStream() noexcept
デフォルトコンストラクタです。更にInit()でバッファを設定して初期化する必要があります。 ...
constexpr FileOutputStreamSettings(void *buf_, size_t buffer_size_) noexcept
それぞれのデータメンバを設定します。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
出力ストリームの基底クラスです。このクラスを実体化することはできません。