12 NW4R_UT_RTTI_DECL(IOStream);
14 typedef void (*StreamCallback)(s32 result, IOStream* pStream,
18 IOStream() : mAvailable(
false), mCallback(NULL), mArg(NULL) {}
19 virtual ~IOStream() {}
21 virtual void Close() = 0;
23 virtual s32 Read(
void* pDst, ulong size) = 0;
24 virtual bool ReadAsync(
void* pDst, ulong size, StreamCallback pCallback,
27 virtual void Write(
const void* pSrc, ulong size);
28 virtual bool WriteAsync(
const void* pSrc, ulong size,
29 StreamCallback pCallback,
32 virtual bool IsBusy()
const;
34 virtual bool CanAsync()
const = 0;
35 virtual bool CanRead()
const = 0;
36 virtual bool CanWrite()
const = 0;
38 virtual ulong GetOffsetAlign()
const {
41 virtual ulong GetSizeAlign()
const {
44 virtual ulong GetBufferAlign()
const {
48 bool IsAvailable()
const {
55 StreamCallback mCallback;