3 #ifndef INCLUDE_NN_NLIB_INPUTCONVERTERSTREAM_H_
4 #define INCLUDE_NN_NLIB_INPUTCONVERTERSTREAM_H_
13 virtual ~InputTransform() {}
22 virtual errno_t Transform(InputStream* is,
void* p,
size_t size,
size_t* n) = 0;
26 virtual void* GetWorkBuffer(
size_t* n) = 0;
29 virtual errno_t OnSetStream(InputStream* is) = 0;
52 virtual
void* GetWorkBuffer_(
size_t* nBytes) NLIB_NOEXCEPT
NLIB_OVERRIDE NLIB_FINAL;
56 InputTransform* m_Cvtr;
63 template <class TRANSFORM>
66 typedef TRANSFORM TransformType;
72 void SetTransform(InputTransform* cvtr) NLIB_NOEXCEPT {
74 errno_t e = InputConverterStream::SetTransform(cvtr);
79 TRANSFORM m_Transform;
87 #endif // INCLUDE_NN_NLIB_INPUTCONVERTERSTREAM_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。