3 #ifndef INCLUDE_NN_NLIB_OUTPUTCONVERTERSTREAM_H_ 4 #define INCLUDE_NN_NLIB_OUTPUTCONVERTERSTREAM_H_ 13 virtual ~OutputTransform() {}
14 virtual errno_t Transform(OutputStream* os,
const void* p,
size_t nBytes,
bool doFlush) = 0;
18 virtual void* GetWorkBuffer(
size_t* n) = 0;
21 virtual errno_t OnSetStream(OutputStream* os) = 0;
24 virtual errno_t OnClose(OutputStream* os) = 0;
44 virtual bool PushBuffer_(
const void* p,
size_t nbytes,
51 OutputTransform* cvtr_;
53 unsigned char* ocs_buf_;
58 template <
class TRANSFORM>
61 typedef TRANSFORM TransformType;
64 this->SetTransform(&m_Transform);
68 bool result = this->Close();
75 errno_t e = OutputConverterStream::SetTransform(cvtr);
76 if (e != 0) this->SetError(e);
80 TRANSFORM m_Transform;
88 #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が定義されます。そうでない場合は空文字列です。
出力ストリームの基底クラスです。このクラスを実体化することはできません。