16 #ifndef INCLUDE_NN_NLIB_OUTPUTCONVERTERSTREAM_H_ 17 #define INCLUDE_NN_NLIB_OUTPUTCONVERTERSTREAM_H_ 26 virtual ~OutputTransform() {}
27 virtual errno_t Transform(OutputStream* os,
const void* p,
size_t nBytes,
bool doFlush) = 0;
31 virtual void* GetWorkBuffer(
size_t* n) = 0;
34 virtual errno_t OnSetStream(OutputStream* os) = 0;
37 virtual errno_t OnClose(OutputStream* os) = 0;
57 virtual bool PushBuffer_(
const void* p,
size_t nbytes,
64 OutputTransform* cvtr_;
66 unsigned char* ocs_buf_;
71 template <
class TRANSFORM>
74 typedef TRANSFORM TransformType;
77 this->SetTransform(&m_Transform);
81 bool result = this->Close();
88 errno_t e = OutputConverterStream::SetTransform(cvtr);
89 if (e != 0) this->SetError(e);
93 TRANSFORM m_Transform;
101 #endif // INCLUDE_NN_NLIB_OUTPUTCONVERTERSTREAM_H_ #define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
OutputStream * GetStream() const noexcept
ベースとなる入力ストリームを取得します。
OutputTransformの派生クラスを保持するためのクラスです。
内部でデータ変換を行うOutputStreamのように振る舞うクラスの基底です。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
出力ストリームの基底クラスです。このクラスを実体化することはできません。