16 #ifndef INCLUDE_NN_NLIB_INPUTCONVERTERSTREAM_H_ 17 #define INCLUDE_NN_NLIB_INPUTCONVERTERSTREAM_H_ 26 virtual ~InputTransform() {}
35 virtual errno_t Transform(InputStream* is,
void* p,
size_t size,
size_t* n) = 0;
39 virtual void* GetWorkBuffer(
size_t* n) = 0;
42 virtual errno_t OnSetStream(InputStream* is) = 0;
51 : stream_(
nullptr), cvtr_(
nullptr), ics_bufsize_(0), ics_buf_(
nullptr) {}
71 InputTransform* cvtr_;
73 unsigned char* ics_buf_;
78 template <
class TRANSFORM>
81 typedef TRANSFORM TransformType;
89 errno_t e = InputConverterStream::SetTransform(cvtr);
90 if (e != 0) this->SetError(e);
94 TRANSFORM m_Transform;
102 #endif // INCLUDE_NN_NLIB_INPUTCONVERTERSTREAM_H_ #define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。