ZFFramework
 
Loading...
Searching...
No Matches
ZFIterable.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFIterable_h_
7#define _ZFI_ZFIterable_h_
8
9#include "ZFObject.h"
11
12// ============================================================
16zfinterface ZFLIB_ZFCore ZFIterable : zfextend ZFInterface {
17 ZFINTERFACE_DECLARE(ZFIterable, ZFInterface)
18
19public:
27 virtual zfiter iter(void) zfpurevirtual;
28
33
40
41public:
45 virtual void iterValue(
47 , ZF_IN ZFObject *value
56 virtual void removeAll(void) zfpurevirtual;
57
61 virtual void iterAdd(ZF_IN ZFObject *value) zfpurevirtual;
66 virtual void iterAdd(
67 ZF_IN ZFObject *value
68 , ZF_IN_OUT zfiter &it
70};
71
72// ============================================================
76zfinterface ZFLIB_ZFCore ZFIterableKeyValue : zfextend ZFInterface {
77 ZFINTERFACE_DECLARE(ZFIterableKeyValue, ZFInterface)
78
79public:
84
85public:
92 virtual void iterAdd(
93 ZF_IN ZFObject *key
94 , ZF_IN ZFObject *value
96};
97
99#endif // #ifndef _ZFI_ZFIterable_h_
100
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
#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 ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:180
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:196
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
#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 zfinterface
shows the type is an interface, see ZFInterface
Definition ZFObjectInterface.h:20
#define ZFINTERFACE_DECLARE(InterfaceName, ParentInterface,...)
see ZFInterface
Definition ZFObjectInterface.h:100
virtual void iterAdd(ZFObject *value)=0
add value to tail
virtual zfindex count(void)=0
return total count of this iterable
virtual zfany iterValue(const zfiter &it)=0
get value by iter, see zfiter
virtual zfiter iterFind(ZFObject *element)=0
find element
virtual zfiter iter(void)=0
return a iter, see zfiter
virtual void iterAdd(ZFObject *value, zfiter &it)=0
add value before iter, see zfiter
virtual void iterRemove(zfiter &it)=0
remove value at iter, see zfiter
virtual void iterValue(zfiter &it, ZFObject *value)=0
set value at iter, see zfiter
virtual void removeAll(void)=0
remove all contents of this iterable
virtual void iterAdd(ZFObject *key, ZFObject *value)=0
add key value to tail, see zfiter
virtual zfany iterKey(const zfiter &it)=0
get key value pair with iter, see zfiter
base class of all objects
Definition ZFObjectCore.h:209
util method to cast ZFObject types freely
Definition zfany.h:35
iterator for ZFFramework
Definition zfiter.h:40