ZFFramework
Loading...
Searching...
No Matches
ZFContainer.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFContainer_h_
7#define _ZFI_ZFContainer_h_
8
9#include "ZFObject.h"
10
12
47zfabstract ZFLIB_ZFCore ZFContainer : zfextend ZFStyle {
48 ZFOBJECT_DECLARE_ABSTRACT(ZFContainer, ZFStyle)
49
50public:
56 )
57
58
70 , ZFMP_IN(ZFObject *, element)
71 )
76
81 , ZFMP_IN(ZFObject *, element)
82 )
83
90 , ZFMP_IN(const zfiter &, it)
91 )
92
93public:
98 , ZFMP_IN_OUT(zfiter &, it)
99 , ZFMP_IN(ZFObject *, value)
105 , ZFMP_IN_OUT(zfiter &, it)
111
116 , ZFMP_IN(ZFObject *, value)
123 , ZFMP_IN(ZFObject *, value)
124 , ZFMP_IN_OUT(zfiter &, it)
126
127public:
132 , ZFMP_IN(ZFContainer *, another)
134
135public:
140 , ZFMP_IN_OUT(zfstring &, ret)
141 , ZFMP_IN_OPT(zfindex, maxCount, zfindexMax())
146 , ZFMP_IN_OPT(zfindex, maxCount, zfindexMax())
149
150protected:
155 ZF_IN const ZFSerializableData &serializableData
156 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
157 , ZF_OUT_OPT ZFSerializableData *outErrorPos = zfnull
158 );
172 ZF_IN_OUT ZFSerializableData &serializableData
173 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
174 , ZF_IN_OPT ZFSerializable *refOwner = zfnull
175 );
176protected:
181 ZF_IN_OUT ZFSerializableData &serializableData
182 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
183 , ZF_IN_OPT ZFSerializable *refOwner = zfnull
184 );
185
186protected:
189 ZF_IN const zfchar *src
190 , ZF_IN_OPT zfindex srcLen = zfindexMax()
191 , ZF_OUT_OPT zfstring *errorHint = zfnull
192 );
196 , ZF_OUT_OPT zfstring *errorHint = zfnull
197 );
198
199protected:
201 virtual void styleableOnCopyFrom(ZF_IN ZFObject *anotherStyleable);
202
204 virtual void objectOnDeallocPrepare(void);
205
207 virtual inline void objectInfoImpl(ZF_IN_OUT zfstring &ret) {
208 this->objectInfoOfContentT(ret, 10);
209 }
210
212 virtual ZFCompareResult objectCompareValueImpl(ZF_IN ZFObject *anotherObj);
213};
214
216#endif // #ifndef _ZFI_ZFContainer_h_
217
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
_ZFT_t_zfchar zfchar
char wrapper
Definition ZFCoreTypeDef_CharType.h:17
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:210
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#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:198
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:202
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:214
_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 zfindexMax()
(zfindex)-1, indicate a max index value, see zfindex
Definition ZFCoreTypeDef_CoreType.h:159
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
ZFCompareResult
compare result of two ZFObjects
Definition ZFCoreTypeDef_OtherType.h:28
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZFMP_IN_OUT(ParamType, paramName)
see ZFMP_IN
Definition ZFMethod.h:117
#define ZFMP_IN_OPT(ParamType, paramName, DefaultValue)
see ZFMP_IN
Definition ZFMethod.h:108
#define ZFMP_IN(ParamType, paramName)
macro to wrap param types for ZFMETHOD_INLINE_0 series
Definition ZFMethod.h:105
#define ZFMETHOD_DECLARE_2(ReturnType, MethodName, ZFMP_0, ZFMP_1)
see ZFMethod
Definition ZFMethodDeclare.h:1024
#define ZFMETHOD_DECLARE_3(ReturnType, MethodName, ZFMP_0, ZFMP_1, ZFMP_2)
see ZFMethod
Definition ZFMethodDeclare.h:1205
#define ZFMETHOD_INTERFACE_1(ReturnType, MethodName, ZFMP_0)
see ZFMethod
Definition ZFMethodInterfaceDeclare.h:145
#define ZFMETHOD_INTERFACE_2(ReturnType, MethodName, ZFMP_0, ZFMP_1)
see ZFMethod
Definition ZFMethodInterfaceDeclare.h:227
#define ZFMETHOD_INTERFACE_0(ReturnType, MethodName)
see ZFMethod
Definition ZFMethodInterfaceDeclare.h:68
#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 ZFOBJECT_DECLARE_ABSTRACT(ChildClass, SuperClass,...)
necessary for every abstract class inherit from ZFObject
Definition ZFObjectDeclare.h:148
#define ZFTokenForContainerDefault()
see ZFTokenForContainer, modifyable, ZFTokenForContainerTrim by default
Definition ZFToken.h:107
virtual void iterRemove(zfiter &it)=0
remove value at iter, see zfiter
virtual zfbool isEmpty()=0
whether empty
virtual zfiter iterFind(ZFObject *element)=0
find element
virtual zfbool serializableOnSerializeToDataWithRef(ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull)
see serializableOnSerializeToData
virtual zfbool serializableOnCheck(void)
see serializable
virtual zfiter iterAdd(ZFObject *value)=0
add value to tail
virtual zfbool serializableOnSerializeToString(zfstring &ret, zfstring *errorHint=zft_zfnull)
see serializeFromString
virtual zfany iterValue(const zfiter &it)=0
get value by iter, see zfiter
virtual zfstring objectInfoOfContent(zfindex maxCount=(((zfindex) -1)), const ZFTokenForContainer &token=(_ZFP_ZFTokenForContainerDefault))
see objectInfoOfContentT
virtual void addFrom(ZFContainer *another)=0
add data from another container
virtual ZFCompareResult objectCompareValueImpl(ZFObject *anotherObj)
see objectCompareValue
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFContainer.h:207
virtual zfbool serializableOnSerializeFromString(const zfchar *src, zfindex srcLen=((zfindex) -1), zfstring *errorHint=zft_zfnull)
see serializeFromString
virtual zfiter iter()=0
return a iter, see zfiter
virtual zfbool isContain(ZFObject *element)=0
whether contain element
virtual void styleableOnCopyFrom(ZFObject *anotherStyleable)
for subclass to achieve custom style copy step, called by copyFrom, see ZFStyleable
virtual void objectOnDeallocPrepare(void)
called before objectOnDealloc, safe to call virtual functions here
virtual zfbool serializableOnSerializeToData(ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull)
see ZFSerializable::serializableOnSerializeToData
virtual void objectInfoOfContentT(zfstring &ret, zfindex maxCount=(((zfindex) -1)), const ZFTokenForContainer &token=(_ZFP_ZFTokenForContainerDefault))
return a short string describe the content
virtual zfindex count()=0
return total count of this iterable
virtual void removeAll()=0
remove all contents of this iterable
virtual zfbool serializableOnSerializeFromData(const ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializableData *outErrorPos=zft_zfnull)
for serializable data that has "category" attribute, ZFSerializable would ignore it and leave it to s...
virtual void capacity(zfindex capacity)=0
change capacity
ZFSerializable's data container, see ZFSerializable.
Definition ZFSerializableData.h:74
util class to hold string tokens
Definition ZFToken.h:17
util method to cast ZFObject types freely
Definition zfany.h:35
iterator for ZFFramework
Definition zfiter.h:40