ZFFramework
 
Loading...
Searching...
No Matches
ZFIODef_fwd.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFIODef_fwd_h_
7#define _ZFI_ZFIODef_fwd_h_
8
9#include "ZFObject.h"
11
13#define ZFSerializableKeyword_ZFIO_pathInfo "pathInfo"
15#define ZFSerializableKeyword_ZFIO_flags "flags"
17#define ZFSerializableKeyword_ZFIO_localPath "localPath"
18
19// ============================================================
20// ZFIOOpenOption
43 ZFENUM_VALUE_WITH_INIT(Write, 1 << 1)
44 ZFENUM_VALUE_WITH_INIT(Modify, 1 << 2)
51
52// ============================================================
53zfclassFwd _ZFP_ZFIOFindDataPrivate;
72public:
74 ZFIOFindData(void);
76 ZFIOFindData &operator = (ZF_IN ZFIOFindData const &ref);
77 zfbool operator == (ZF_IN ZFIOFindData const &ref) const;
78 zfbool operator != (ZF_IN ZFIOFindData const &ref) const {
79 return !this->operator == (ref);
80 }
82 ~ZFIOFindData(void);
83
84public:
88 const zfstring &name(void) const {
89 return this->impl().name;
90 }
91
94 zfbool isDir(void) const {
95 return this->impl().isDir;
96 }
97
98public:
102 inline zfstring objectInfo(void) const {
103 zfstring ret;
104 this->objectInfoT(ret);
105 return ret;
106 }
107
108public:
111 public:
114 void *nativeFd;
115 public:
117 Impl(void)
118 : name()
119 , isDir(zffalse)
121 {
122 }
124 private:
125 Impl(ZF_IN const Impl &);
126 Impl &operator = (ZF_IN const Impl &);
127 };
128public:
130 Impl &impl(void) const;
132 void implCopy(ZF_IN const ZFIOFindData &ref) const;
134 const zfstring &implName(void) const;
136 void *implUserData(void) const;
139 ZF_IN const zfstring &implName
141 );
143 void implDetach(void);
145 void *implCheck(ZF_IN const zfstring &implName) const;
146
149 ZF_IN const zfstring &key
150 , ZF_IN ZFObject *value
151 ) const;
153 zfany implTag(ZF_IN const zfstring &key) const;
154private:
155 _ZFP_ZFIOFindDataPrivate *d;
156};
159ZFOUTPUT_TYPE(ZFIOFindData, {v.objectInfoT(s);})
160
161// ============================================================
164zfabstract ZFLIB_ZFCore ZFIOToken : zfextend ZFObject {
165 ZFOBJECT_DECLARE_ABSTRACT(ZFIOToken, ZFObject)
166
167public:
173 ZFEVENT(IOCloseOnPrepare)
179 ZFEVENT(IOCloseOnFinish)
180
181protected:
183 virtual void objectOnDeallocPrepare(void) {
184 this->ioClose();
186 }
187protected:
189 virtual inline void objectInfoImpl(ZF_IN_OUT zfstring &ret) {
190 ret += this->pathType();
192 ret += this->pathData();
193 }
194public:
196 virtual ZFPathInfo pathInfo(void) {
197 return ZFPathInfo(this->pathType(), this->pathData());
198 }
199
205
206public:
237 ZF_OUT void *buf
238 , ZF_IN zfindex maxByteSize
256 ZF_IN const void *src
257 , ZF_IN_OPT zfindex maxByteSize = zfindexMax()
262 virtual void ioFlush(void) {
263 }
264
269 virtual zfbool ioSeek(
270 ZF_IN zfindex byteSize
271 , ZF_IN_OPT ZFSeekPos seekPos = ZFSeekPosBegin
284 virtual zfindex ioSize(void) {
285 zfindex cur = this->ioTell();
286 if(cur == zfindexMax()) {
287 return zfindexMax();
288 }
289 this->ioSeek(0, ZFSeekPosEnd);
290 zfindex size = this->ioTell();
291 this->ioSeek(cur);
292 return size;
293 }
294};
295
296// ============================================================
298zfabstract ZFLIB_ZFCore ZFIOImpl : zfextend ZFObject {
299 ZFOBJECT_DECLARE_ABSTRACT(ZFIOImpl, ZFObject)
300protected:
302 virtual inline void objectInfoImpl(ZF_IN_OUT zfstring &ret) {
304 ret += "ZFIOImpl:";
305 ret += this->pathType();
307 }
308public:
315
321 virtual zfbool ioIsExist(ZF_IN const zfstring &pathData) zfpurevirtual;
327 virtual zfbool ioIsDir(ZF_IN const zfstring &pathData) zfpurevirtual;
335 , ZF_IN const zfstring &pathData
344 , ZF_IN const zfstring &pathData
345 , ZF_IN const zfstring &childName
354 , ZF_IN const zfstring &pathData
362 ZF_IN const zfstring &pathData
363 , ZF_IN_OPT zfbool autoCreateParent = zftrue
371 ZF_IN const zfstring &pathData
372 , ZF_IN_OPT zfbool isRecursive = zftrue
373 , ZF_IN_OPT zfbool isForce = zftrue
380 virtual zfbool ioMove(
381 ZF_IN const zfstring &pathDataTo
382 , ZF_IN const zfstring &pathDataFrom
383 , ZF_IN_OPT zfbool isForce = zftrue
388 virtual zftimet ioModTime(ZF_IN const zfstring &pathData) {return zftimetInvalid();}
392 virtual zfbool ioModTime(ZF_IN const zfstring &pathData, ZF_IN zftimet time) {return zffalse;}
400 , ZF_IN const zfstring &pathData
420 ZF_IN const zfstring &pathData
422 , ZF_IN_OPT zfbool autoCreateParent = zftrue
424
425 // ============================================================
426 // default/dummy impl
427public:
429 static zfbool ioIsExistDefault(ZF_IN const zfstring &pathData);
431 static zfbool ioIsDirDefault(ZF_IN const zfstring &pathData);
435 , ZF_IN const zfstring &pathData
436 );
440 , ZF_IN const zfstring &pathData
441 , ZF_IN const zfstring &childName
442 );
446 , ZF_IN const zfstring &pathData
447 );
450 ZF_IN const zfstring &pathData
451 , ZF_IN_OPT zfbool autoCreateParent = zftrue
452 );
455 ZF_IN const zfstring &pathData
456 , ZF_IN_OPT zfbool isRecursive = zftrue
457 , ZF_IN_OPT zfbool isForce = zftrue
458 );
461 ZF_IN const zfstring &pathDataTo
462 , ZF_IN const zfstring &pathDataFrom
463 , ZF_IN_OPT zfbool isForce = zftrue
464 );
466 static zftimet ioModTimeDefault(ZF_IN const zfstring &pathData);
468 static zfbool ioModTimeDefault(ZF_IN const zfstring &pathData, ZF_IN zftimet time);
472 , ZF_IN const zfstring &pathData
473 );
480 ZF_IN const zfstring &pathData
482 , ZF_IN_OPT zfbool autoCreateParent = zftrue
483 );
485 static zfbool ioCloseDefault(ZF_IN void *token);
488 ZF_IN void *token
489 , ZF_IN void *buf
490 , ZF_IN zfindex maxByteSize
491 );
494 ZF_IN void *token
495 , ZF_IN const void *src
496 , ZF_IN_OPT zfindex maxByteSize = zfindexMax()
497 );
499 static void ioFlushDefault(ZF_IN void *token);
502 ZF_IN void *token
503 , ZF_IN zfindex byteSize
504 , ZF_IN_OPT ZFSeekPos seekPos = ZFSeekPosBegin
505 );
507 static zfindex ioTellDefault(ZF_IN void *token);
509 static zfindex ioSizeDefault(ZF_IN void *token);
510
511 // ============================================================
512 // default impl for chained path info
513public:
515 static zfbool ioIsExistForChained(ZF_IN const zfstring &pathData);
517 static zfbool ioIsDirForChained(ZF_IN const zfstring &pathData);
521 , ZF_IN const zfstring &pathData
522 );
526 , ZF_IN const zfstring &pathData
527 , ZF_IN const zfstring &childName
528 );
532 , ZF_IN const zfstring &pathData
533 );
536 ZF_IN const zfstring &pathData
537 , ZF_IN_OPT zfbool autoCreateParent = zftrue
538 );
541 ZF_IN const zfstring &pathData
542 , ZF_IN_OPT zfbool isRecursive = zftrue
543 , ZF_IN_OPT zfbool isForce = zftrue
544 );
547 ZF_IN const zfstring &pathDataTo
548 , ZF_IN const zfstring &pathDataFrom
549 , ZF_IN_OPT zfbool isForce = zftrue
550 );
552 static zftimet ioModTimeForChained(ZF_IN const zfstring &pathData);
554 static zfbool ioModTimeForChained(ZF_IN const zfstring &pathData, ZF_IN zftimet time);
558 , ZF_IN const zfstring &pathData
559 );
564};
565
566// ============================================================
581 , ZFMP_IN(const zfstring &, pathType)
585
588 , ZFMP_IN(const zfstring &, pathType)
589 , ZFMP_IN(ZFIOImpl *, ioImpl)
593 , ZFMP_IN(const zfstring &, pathType)
595
597#define ZFIO_DECLARE(ZFLIB_, pathType) \
598 ZFMETHOD_FUNC_DECLARE_0(ZFLIB_, const zfstring &, ZFPathType_##pathType)
599
601#define ZFIO_DEFINE(pathType, ZFIOImpl_) \
602 ZFMETHOD_FUNC_DEFINE_0(const zfstring &, ZFPathType_##pathType) { \
603 static zfstring ret = zftext(ZFM_TOSTRING(pathType)); \
604 return ret; \
605 } \
606 ZF_STATIC_REGISTER_INIT(ZFIOReg_##pathType) { \
607 ZFIOImplRegister(ZFPathType_##pathType(), zfobj<ZFIOImpl_>()); \
608 } \
609 ZF_STATIC_REGISTER_DESTROY(ZFIOReg_##pathType) { \
610 ZFIOImplUnregister(ZFPathType_##pathType()); \
611 } \
612 ZF_STATIC_REGISTER_END(ZFIOReg_##pathType)
613
615#endif // #ifndef _ZFI_ZFIODef_fwd_h_
616
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
#define zffinal
dummy macro shows that a method or class is designed must not to be overrided
Definition ZFCoreTypeDef_ClassType.h:63
#define zfclassLikePOD
shows the class is not a POD type, but you may use it like a POD except memset it to 0
Definition ZFCoreTypeDef_ClassType.h:41
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define zfpurevirtual
dummy macro shows that a method is pure virtual method
Definition ZFCoreTypeDef_ClassType.h:68
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:188
#define ZF_OUT
dummy macro that shows the param used as required output
Definition ZFCoreTypeDef_ClassType.h:192
#define zfclassNotPOD
shows the class is not a POD type, you should not memset it or declare it in stack or copy value by c...
Definition ZFCoreTypeDef_ClassType.h:48
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:200
#define zfclassFwd
forward declaration of a class type
Definition ZFCoreTypeDef_ClassType.h:31
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
#define zftrue
bool true type
Definition ZFCoreTypeDef_CoreType.h:107
_zft_zftimet zftimet
time unit, ensured at least 64 bit, ensured signed
Definition ZFCoreTypeDef_CoreType.h:203
#define zfindexMax()
(zfindex)-1, indicate a max index value, see zfindex
Definition ZFCoreTypeDef_CoreType.h:159
#define zftimetInvalid()
invalid time value
Definition ZFCoreTypeDef_CoreType.h:205
#define zffalse
bool false type
Definition ZFCoreTypeDef_CoreType.h:111
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
ZFSeekPos
seek position similar to SEEK_SET of FILE operation
Definition ZFCoreTypeDef_OtherType.h:47
#define ZFOUTPUT_TYPE(T_Type, outputAction)
declare your custom type conversion to string, convenient for debug
Definition ZFCoreTypeDef_OtherType.h:221
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZFENUM_REG_FLAGS(ZFLIB_, EnumName, EnumFlagsName,...)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:189
#define ZFENUM_SEPARATOR()
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:158
#define ZFENUM_VALUE_REGISTER(Value)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:168
#define ZFENUM_VALUE_WITH_INIT(Value, initValue)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:154
#define ZFENUM_BEGIN(ZFLIB_, EnumName)
macros to define reflectable enum type
Definition ZFEnumDeclare.h:147
#define ZFENUM_END_FLAGS(ZFLIB_, EnumName, EnumFlagsName)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:179
v_ZFIOOpenOption::ZFEnumType ZFIOOpenOption
see v_ZFIOOpenOption
Definition ZFIODef_fwd.h:49
ZFCoreArray< zfautoT< ZFIOImpl > > ZFIOImplList()
return a list of ZFIOImplRegister, for debug use only
void ZFIOImplRegister(const zfstring &pathType, ZFIOImpl *ioImpl)
see ZFIOImplForPathType
void ZFIOImplUnregister(const zfstring &pathType)
see ZFIOImplForPathType
zfautoT< ZFIOImpl > ZFIOImplForPathType(const zfstring &pathType)
main entry for abstract IO for ZFFramework
#define ZFMP_IN(ParamType, paramName)
macro to wrap param types for ZFMETHOD_INLINE_0 series
Definition ZFMethod.h:105
#define ZFMETHOD_FUNC_DECLARE_2(ZFLIB_, ReturnType, MethodName, ZFMP_0, ZFMP_1)
see ZFMETHOD_FUNC_DECLARE_0
Definition ZFMethodFuncDeclare.h:763
#define ZFMETHOD_FUNC_DECLARE_0(ZFLIB_, ReturnType, MethodName)
declare function type of ZFMethod
Definition ZFMethodFuncDeclare.h:493
#define ZFMETHOD_FUNC_DECLARE_1(ZFLIB_, ReturnType, MethodName, ZFMP_0)
see ZFMETHOD_FUNC_DECLARE_0
Definition ZFMethodFuncDeclare.h:624
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
ZFObject related include.
#define zfabstract
typename for class showing that its abstract
Definition ZFObjectClassTypeFwd.h:42
#define ZFTOKEN_ZFObjectInfoLeft
left bracket when output ZFObject's info
Definition ZFObjectCore.h:24
#define ZFTOKEN_ZFObjectInfoRight
right bracket when output ZFObject's info
Definition ZFObjectCore.h:29
#define ZFOBJECT_DECLARE_ABSTRACT(ChildClass, SuperClass,...)
necessary for every abstract class inherit from ZFObject
Definition ZFObjectDeclare.h:152
#define ZFEVENT(YourEvent)
see ZFObject::observerNotify
Definition ZFObjectObserver.h:316
#define ZFSerializableKeyword_ZFPathInfo_separator
keyword for serialize
Definition ZFTypeId_CoreType.h:444
#define ZFTYPEID_ACCESS_ONLY_REG(ZFLIB_, TypeName, Type,...)
see ZFTYPEID_DECLARE
Definition ZFTypeIdDeclare.h:205
#define ZFTYPEID_ACCESS_ONLY_DECLARE(ZFLIB_, TypeName, Type)
see ZFTYPEID_DECLARE
Definition ZFTypeIdDeclare.h:195
light weight array
Definition ZFCoreArray.h:342
for impl to achieve custom find logic
Definition ZFIODef_fwd.h:110
zfbool isDir
whether directory
Definition ZFIODef_fwd.h:113
void * nativeFd
for impl to store native find data
Definition ZFIODef_fwd.h:114
zfstring name
file path
Definition ZFIODef_fwd.h:112
data used by ZFIO when finding files
Definition ZFIODef_fwd.h:71
void objectInfoT(zfstring &ret) const
see objectInfo
void implTag(const zfstring &key, ZFObject *value) const
util for impl to store extra data
zfany implTag(const zfstring &key) const
util for impl to store extra data
void * implUserData(void) const
user data passed from implAttach
const zfstring & name(void) const
return file name of file
Definition ZFIODef_fwd.h:88
zfbool isDir(void) const
return true if is a directory
Definition ZFIODef_fwd.h:94
void * implCheck(const zfstring &implName) const
check whether impl matches, assert fail if not match, return the implUserData
void implCopy(const ZFIOFindData &ref) const
copy the impl data
const zfstring & implName(void) const
name for the impl
void implDetach(void)
close find
void implAttach(const zfstring &implName, void *implUserData=zft_zfnull)
begin first find
Impl & impl(void) const
the impl
zfstring objectInfo(void) const
return object info
Definition ZFIODef_fwd.h:102
see ZFIOImplForPathType
Definition ZFIODef_fwd.h:298
static zfindex ioReadDefault(void *token, void *buf, zfindex maxByteSize)
see ZFIOImplForPathType
static zfbool ioModTimeForChained(const zfstring &pathData, zftimet time)
see ZFIOImplForPathType
static zfbool ioToParentForChained(zfstring &ret, const zfstring &pathData)
see ZFIOImplForPathType
static void ioFlushDefault(void *token)
see ZFIOImplForPathType
static zfindex ioTellDefault(void *token)
see ZFIOImplForPathType
virtual zfbool ioPathCreate(const zfstring &pathData, zfbool autoCreateParent=_ZFT_t_zftrue)=0
see ZFIOImplForPathType
virtual zfbool ioToFileName(zfstring &ret, const zfstring &pathData)=0
see ZFIOImplForPathType
static zfbool ioPathCreateDefault(const zfstring &pathData, zfbool autoCreateParent=_ZFT_t_zftrue)
see ZFIOImplForPathType
static zfbool ioToChildForChained(zfstring &ret, const zfstring &pathData, const zfstring &childName)
see ZFIOImplForPathType
virtual zfstring pathType(void)=0
see ZFIOImplForPathType
static zfbool ioRemoveDefault(const zfstring &pathData, zfbool isRecursive=_ZFT_t_zftrue, zfbool isForce=_ZFT_t_zftrue)
see ZFIOImplForPathType
static zfbool ioIsExistForChained(const zfstring &pathData)
see ZFIOImplForPathType
virtual zfbool ioFindNext(ZFIOFindData &fd)=0
see ZFIOImplForPathType
static zfindex ioWriteDefault(void *token, const void *src, zfindex maxByteSize=((zfindex) -1))
see ZFIOImplForPathType
virtual zfbool ioModTime(const zfstring &pathData, zftimet time)
change last modified time, do nothing if error or not available
Definition ZFIODef_fwd.h:392
static zfbool ioIsExistDefault(const zfstring &pathData)
see ZFIOImplForPathType
virtual zfbool ioMove(const zfstring &pathDataTo, const zfstring &pathDataFrom, zfbool isForce=_ZFT_t_zftrue)=0
see ZFIOImplForPathType
static zfbool ioMoveDefault(const zfstring &pathDataTo, const zfstring &pathDataFrom, zfbool isForce=_ZFT_t_zftrue)
see ZFIOImplForPathType
virtual zfbool ioFindFirst(ZFIOFindData &fd, const zfstring &pathData)=0
see ZFIOImplForPathType
static zfbool ioToParentDefault(zfstring &ret, const zfstring &pathData)
see ZFIOImplForPathType
virtual zfbool ioRemove(const zfstring &pathData, zfbool isRecursive=_ZFT_t_zftrue, zfbool isForce=_ZFT_t_zftrue)=0
see ZFIOImplForPathType
static zfbool ioFindFirstForChained(ZFIOFindData &fd, const zfstring &pathData)
see ZFIOImplForPathType
virtual zfbool ioToChild(zfstring &ret, const zfstring &pathData, const zfstring &childName)=0
see ZFIOImplForPathType
virtual zfautoT< ZFIOToken > ioOpen(const zfstring &pathData, ZFIOOpenOptionFlags flags, zfbool autoCreateParent=_ZFT_t_zftrue)=0
see ZFIOImplForPathType
static void ioFindCloseDefault(ZFIOFindData &fd)
see ZFIOImplForPathType
virtual zftimet ioModTime(const zfstring &pathData)
return last modified time, or zftimetInvalid if error or not available
Definition ZFIODef_fwd.h:388
virtual zfbool ioToParent(zfstring &ret, const zfstring &pathData)=0
see ZFIOImplForPathType
static zftimet ioModTimeForChained(const zfstring &pathData)
see ZFIOImplForPathType
static zfbool ioToChildDefault(zfstring &ret, const zfstring &pathData, const zfstring &childName)
see ZFIOImplForPathType
static zfbool ioSeekDefault(void *token, zfindex byteSize, ZFSeekPos seekPos=ZFSeekPosBegin)
see ZFIOImplForPathType
static zfbool ioFindNextDefault(ZFIOFindData &fd)
see ZFIOImplForPathType
static zfautoT< ZFIOToken > ioOpenDefault(const zfstring &pathData, ZFIOOpenOptionFlags flags, zfbool autoCreateParent=_ZFT_t_zftrue)
see ZFIOImplForPathType
static zfbool ioPathCreateForChained(const zfstring &pathData, zfbool autoCreateParent=_ZFT_t_zftrue)
see ZFIOImplForPathType
static zfbool ioIsDirDefault(const zfstring &pathData)
see ZFIOImplForPathType
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFIODef_fwd.h:302
static void ioFindCloseForChained(ZFIOFindData &fd)
see ZFIOImplForPathType
static zfbool ioModTimeDefault(const zfstring &pathData, zftimet time)
see ZFIOImplForPathType
virtual zfbool ioIsExist(const zfstring &pathData)=0
see ZFIOImplForPathType
static zfbool ioRemoveForChained(const zfstring &pathData, zfbool isRecursive=_ZFT_t_zftrue, zfbool isForce=_ZFT_t_zftrue)
see ZFIOImplForPathType
static zftimet ioModTimeDefault(const zfstring &pathData)
see ZFIOImplForPathType
static zfindex ioSizeDefault(void *token)
see ZFIOImplForPathType
static zfbool ioFindFirstDefault(ZFIOFindData &fd, const zfstring &pathData)
see ZFIOImplForPathType
static zfbool ioToFileNameForChained(zfstring &ret, const zfstring &pathData)
see ZFIOImplForPathType
static zfbool ioFindNextForChained(ZFIOFindData &fd)
see ZFIOImplForPathType
virtual void ioFindClose(ZFIOFindData &fd)=0
see ZFIOImplForPathType
static zfbool ioToFileNameDefault(zfstring &ret, const zfstring &pathData)
see ZFIOImplForPathType
static zfbool ioCloseDefault(void *token)
see ZFIOImplForPathType
static zfbool ioIsDirForChained(const zfstring &pathData)
see ZFIOImplForPathType
static zfbool ioMoveForChained(const zfstring &pathDataTo, const zfstring &pathDataFrom, zfbool isForce=_ZFT_t_zftrue)
see ZFIOImplForPathType
virtual zfbool ioIsDir(const zfstring &pathData)=0
see ZFIOImplForPathType
see v_ZFIOOpenOption, ZFIOOpenOptionFlagsToString, ZFIOOpenOptionFlagsFromString
Definition ZFIODef_fwd.h:49
virtual zfindex ioSize(void)
see ZFIOImplForPathType
Definition ZFIODef_fwd.h:284
virtual zfstring pathData(void)=0
path info for this token
virtual zfbool ioSeek(zfindex byteSize, ZFSeekPos seekPos=ZFSeekPosBegin)=0
see ZFIOImplForPathType
virtual ZFIOOpenOptionFlags ioFlags(void)=0
open flags for this token
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFIODef_fwd.h:189
virtual zfstring pathType(void)=0
path info for this token
virtual zfbool ioClose(void)=0
see ZFIOImplForPathType
virtual ZFPathInfo pathInfo(void)
path info for this token
Definition ZFIODef_fwd.h:196
virtual zfindex ioWrite(const void *src, zfindex maxByteSize=((zfindex) -1))=0
see ZFIOImplForPathType
virtual zfindex ioRead(void *buf, zfindex maxByteSize)=0
see ZFIOImplForPathType
virtual void ioFlush(void)
flush write buffer, do nothing if impl not supported
Definition ZFIODef_fwd.h:262
virtual zfindex ioTell(void)=0
see ZFIOImplForPathType
virtual void objectOnDeallocPrepare(void)
called before objectOnDealloc, safe to call virtual functions here
Definition ZFIODef_fwd.h:183
base class of all objects
Definition ZFObjectCore.h:196
virtual void objectOnDeallocPrepare(void)
called before objectOnDealloc, safe to call virtual functions here
Definition ZFObjectCore.h:744
path related info storage for impl, actual meaning of the info depends on impl
Definition ZFPathInfo.h:34
util method to cast ZFObject types freely
Definition zfany.h:35
type restrict version of zfauto
Definition zfautoFwd.h:108