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;
42 virtual bool PushBuffer_(
const void* p,
size_t nBytes,
45 virtual
void* GetWorkBuffer_(
size_t* nBytes) NLIB_NOEXCEPT
NLIB_OVERRIDE NLIB_FINAL;
49 OutputTransform* m_Cvtr;
56 template <class TRANSFORM>
59 typedef TRANSFORM TransformType;
62 this->SetTransform(&m_Transform);
66 bool result = this->
Close();
71 void SetTransform(OutputTransform* cvtr) NLIB_NOEXCEPT {
73 errno_t e = OutputConverterStream::SetTransform(cvtr);
78 TRANSFORM m_Transform;
86 #endif // INCLUDE_NN_NLIB_OUTPUTCONVERTERSTREAM_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
bool Close() noexcept
ストリームをフラッシュした後、ストリームを閉じます。成功した場合にはtrueを返します。 ...
OutputTransformの派生クラスを保持するためのクラスです。
内部でデータ変換を行うOutputStreamのように振る舞うクラスの基底です。
OutputStream * GetStream() const noexcept
ベースとなる入力ストリームを取得します。
void SetError(errno_t e) const noexcept
OutputStreamにエラーを設定します。
出力ストリームの基底クラスです。このクラスを実体化することはできません。