ZFFramework
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | List of all members
ZFArray Class Reference

container of ZFObject, see ZFContainer More...

#include <ZFArray.h>

Inheritance diagram for ZFArray:
ZFContainer ZFObject ZFSerializable ZFCopyable ZFIterable ZFInterface ZFInterface ZFInterface

Public Types

enum  
 
- Public Types inherited from ZFObject
enum  
 

Public Member Functions

virtual const ZFClassclassData (void)
 get instance's class info
 
virtual zfindex count ()
 return number of content
 
virtual zfbool isEmpty ()
 return true if empty or false if not empty
 
virtual zfbool isContain (ZFObject *obj, ZFComparer< ZFObject * >::Comparer comparer=(_ZFP_ZFComparerCheckEqual))
 return true if contains the object, compared by ZFObject::objectCompare by default
 
virtual zfany get (zfindex index)
 return object at index, assert failure if out of range
 
virtual zfany getFirst ()
 return first object or zfnull if empty
 
virtual zfany getLast ()
 return last object or zfnull if empty
 
virtual zfindex find (ZFObject *obj, ZFComparer< ZFObject * >::Comparer comparer=(_ZFP_ZFComparerCheckEqual))
 find element, compared by ZFObject::objectCompare by default
 
virtual zfindex findReversely (ZFObject *obj, ZFComparer< ZFObject * >::Comparer comparer=(_ZFP_ZFComparerCheckEqual))
 find element, compared by ZFObject::objectCompare by default
 
virtual void add (zfindex indexAddTo, ZFObject *obj)
 insert object at index, assert failure if obj = zfnull or index out of range [0, count]
 
virtual void add (ZFObject *obj)
 insert object to last, assert failure if obj = zfnull, see add
 
virtual void addFrom (ZFContainer *another)
 add objects from another container
 
virtual void set (zfindex index, ZFObject *obj)
 replace object at index, assert fail if index out of range
 
virtual zfbool removeElement (ZFObject *obj)
 remove first matched object, return whether the element removed
 
virtual zfbool removeElement (ZFObject *obj, ZFComparer< ZFObject * >::Comparer comparer)
 remove first matched object, return whether the element removed
 
virtual zfbool removeElementRevsersely (ZFObject *obj)
 remove last matched object, return whether the element removed
 
virtual zfbool removeElementRevsersely (ZFObject *obj, ZFComparer< ZFObject * >::Comparer comparer)
 remove last matched object, return whether the element removed
 
virtual zfindex removeElementAll (ZFObject *obj)
 remove all matched object, return number of element removed
 
virtual zfindex removeElementAll (ZFObject *obj, ZFComparer< ZFObject * >::Comparer comparer)
 remove all matched object, return number of element removed
 
virtual void remove (zfindex index, zfindex count=(1))
 remove object at index, assert failure if out of range
 
virtual void removeFirst ()
 remove first object or do nothing if out of range
 
virtual void removeLast ()
 remove last object or do nothing if out of range
 
virtual void removeAll ()
 remove all object
 
virtual void move (zfindex fromIndex, zfindex toIndexOrIndexMax)
 move element
 
virtual void sort (zfindex start=(0), zfindex count=(((zfindex) -1)), ZFComparer< ZFObject * >::Comparer comparer=(_ZFP_ZFComparerCheckEqual))
 sort content in range [start, start + count), all of content must be comparable
 
virtual void sortReversely (zfindex start=(0), zfindex count=(((zfindex) -1)), ZFComparer< ZFObject * >::Comparer comparer=(_ZFP_ZFComparerCheckEqual))
 sort content in range [start, start + count), all of content must be comparable
 
virtual zfiterator iterForIndex (zfindex index)
 see zfiterator
 
virtual zfiterator iter ()
 see zfiterator
 
virtual zfiterator iterFind (ZFObject *element)
 see zfiterator
 
virtual zfbool iterValid (const zfiterator &it)
 see zfiterator
 
virtual void iterNext (zfiterator &it)
 see zfiterator
 
virtual zfany iterValue (const zfiterator &it)
 see zfiterator
 
virtual void iterValue (zfiterator &it, ZFObject *value)
 see zfiterator
 
virtual void iterRemove (zfiterator &it)
 see zfiterator
 
virtual void iterAdd (ZFObject *value)
 see zfiterator
 
virtual void iterAdd (ZFObject *value, zfiterator &it)
 see zfiterator
 
- Public Member Functions inherited from ZFContainer
virtual void objectInfoOfContentT (zfstring &ret, zfindex maxCount=(((zfindex) -1)), const ZFTokenForContainer &token=(_ZFP_ZFTokenForContainerDefault))
 return a short string describe the content
 
virtual zfstring objectInfoOfContent (zfindex maxCount=(((zfindex) -1)), const ZFTokenForContainer &token=(_ZFP_ZFTokenForContainerDefault))
 see objectInfoOfContentT
 
virtual void objectOnDeallocPrepare (void)
 see ZFObject::objectOnDeallocPrepare, remove all contents before dealloc
 
virtual void objectInfoT (zfstring &ret)
 see objectInfo
 
virtual zfidentity objectHash (void)
 get hash of this object
 
virtual ZFCompareResult objectCompare (ZFObject *anotherObj)
 compare with anotherObj
 
- Public Member Functions inherited from ZFObject
zfindex objectRetainCount (void)
 return the object's retain count
 
ZFObjectHolderobjectHolder (void)
 return an object holder that hold this object without affecting retain count
 
virtual void objectInfoOfInstanceT (zfstring &ret)
 see objectInfoOfInstance
 
virtual zfstring objectInfoOfInstance (void)
 return a short string describe the object instance
 
virtual zfstring objectInfo (void)
 return object info
 
virtual zfbool equalTo (ZFObject *anotherObj)
 util to objectCompare
 
virtual zfauto invoke (const zfchar *methodName)
 util method to perform ZFDI_invoke, do nothing if fail
 
virtual zfauto invoke (const zfchar *methodName, ZFObject *param0, ZFObject *param1=((ZFObject *const &) _ZFP_ZFMethodGenericInvokerDefaultParamRef), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMethodGenericInvokerDefaultParamRef), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMethodGenericInvokerDefaultParamRef), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMethodGenericInvokerDefaultParamRef), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMethodGenericInvokerDefaultParamRef), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMethodGenericInvokerDefaultParamRef), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMethodGenericInvokerDefaultParamRef))
 util method to perform ZFDI_invoke, do nothing if fail
 
virtual zfauto invokeDetail (const zfchar *methodName, const ZFCoreArray< zfauto > &params, zfbool *success=0, zfstring *errorHint=0)
 util method to perform ZFDI_invoke, do nothing if fail
 
zfbool objectTagExist (void)
 see objectTag, true if this object has tag, and tag can be checked by objectTagGetAllKeyValue
 
void objectTag (const zfchar *key, ZFObject *tag)
 used to hold a object for app's use, auto retained
 
zfany objectTag (const zfchar *key)
 see objectTag
 
void objectTagGetAllKeyValue (ZFCoreArray< zfstring > &allKey, ZFCoreArray< zfauto > &allValue)
 get all key value
 
void objectTagRemove (const zfchar *key)
 remove tag, same as set tag to null
 
zfauto objectTagRemoveAndGet (const zfchar *key)
 remove tag, return removed tag or null if not exist
 
void objectTagRemoveAll (void)
 remove all tag
 
void observerAdd (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 see observerNotify
 
void observerAddForOnce (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 see observerNotify
 
void observerRemove (zfidentity eventId, const ZFListener &callback)
 see observerNotify
 
void observerRemoveAll (zfidentity eventId)
 see observerNotify
 
void observerRemoveAll (void)
 see observerNotify
 
zfbool observerHasAdd (void)
 true if any observer has been added
 
zfbool observerHasAdd (zfidentity eventId)
 true if any observer with eventId has been added
 
void observerNotify (zfidentity eventId, ZFObject *param0=0, ZFObject *param1=0)
 notify the observer with eventId
 
void observerNotifyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=0, ZFObject *param1=0)
 see observerNotify
 
ZFObserverobserverHolder (void)
 access the internal observer holder
 
ZFObjectInstanceState objectInstanceState (void)
 object instance's state
 
virtual zfbool objectIsInternal (void)
 whether this object is internal object or its class is ZFClass::classIsInternal
 
virtual zfbool objectIsInternalPrivate (void)
 whether this object is internal private object or its class is ZFClass::classIsInternalPrivate
 
ZFV zfv (void)
 see ZFV
 
- Public Member Functions inherited from ZFSerializable
zfbool serializable (void)
 true if object is currently serializable, see ZFSerializable
 
zfbool serializeFromData (const ZFSerializableData &serializableData, zfstring *outErrorHint=0, ZFSerializableData *outErrorPos=0)
 serialize from data, see ZFSerializable
 
zfbool serializeToData (ZFSerializableData &serializableData, zfstring *outErrorHint=0, ZFSerializable *referencedOwnerOrNull=0)
 serialize to data, see ZFSerializable
 
zfbool serializeFromString (const zfchar *src, zfindex srcLen=((zfindex) -1), zfstring *errorHint=0)
 serialize from string, return false by default
 
zfbool serializeToString (zfstring &ret, zfstring *errorHint=0)
 see serializeFromString
 
void serializableGetAllSerializablePropertyT (ZFCoreArray< const ZFProperty * > &ret)
 see serializableGetAllSerializableProperty
 
ZFCoreArray< const ZFProperty * > serializableGetAllSerializableProperty (void)
 get all serializable property, usually for debug only, see serializableOnCheckPropertyType
 
void serializableGetAllSerializableEmbededPropertyT (ZFCoreArray< const ZFProperty * > &ret)
 see serializableGetAllSerializableEmbededProperty
 
ZFCoreArray< const ZFProperty * > serializableGetAllSerializableEmbededProperty (void)
 get all serializable embeded property, usually for debug only, see serializableOnCheckPropertyType
 
virtual void serializableInfoT (zfstring &ret)
 get info as a serializable
 
virtual zfstring serializableInfo (void)
 see serializableInfoT
 
- Public Member Functions inherited from ZFInterface
virtual ZFObjecttoObject (void)=0
 convert to ZFObject type
 
- Public Member Functions inherited from ZFCopyable
zfautoT< ZFCopyablecopy (void)
 return a copy of this object
 
void copyFrom (ZFObject *anotherObj)
 see copy, anotherObj must be same type as this object (by classData), otherwise, do nothing
 

Static Public Member Functions

static const ZFClassClassData (void)
 get class info
 
- Static Public Member Functions inherited from ZFContainer
static const ZFClassClassData (void)
 get class info
 
static zfidentity EventContentOnChange (void)
 see ZFObject::observerNotify
 
static zfidentity EventContentOnAdd (void)
 see ZFObject::observerNotify
 
static zfidentity EventContentOnRemove (void)
 see ZFObject::observerNotify
 
- Static Public Member Functions inherited from ZFObject
static const ZFClassClassData (void)
 get class info
 
static zfidentity EventObjectBeforeAlloc (void)
 see ZFObject::observerNotify
 
static zfidentity EventObjectAfterAlloc (void)
 see ZFObject::observerNotify
 
static zfidentity EventObjectBeforeDealloc (void)
 see ZFObject::observerNotify
 
static zfidentity EventObjectPropertyValueOnUpdate (void)
 see ZFObject::observerNotify
 
- Static Public Member Functions inherited from ZFSerializable
static const ZFClassClassData (void)
 get class info
 
- Static Public Member Functions inherited from ZFInterface
static const ZFClassClassData (void)
 get class info
 
- Static Public Member Functions inherited from ZFCopyable
static const ZFClassClassData (void)
 get class info
 
- Static Public Member Functions inherited from ZFIterable
static const ZFClassClassData (void)
 get class info
 

Protected Types

typedef ZFContainer zfsuper
 class ref to super
 
typedef ZFArray zfself
 class ref to self
 
- Protected Types inherited from ZFContainer
typedef ZFObject zfsuper
 class ref to super
 
typedef ZFContainer zfself
 class ref to self
 
- Protected Types inherited from ZFObject
typedef _ZFP_Obj_Base zfsuper
 class ref to super
 
typedef ZFObject zfself
 class ref to self
 
- Protected Types inherited from ZFSerializable
typedef ZFInterface zfsuper
 typedef for super (always ZFInterface for an interface type)
 
typedef ZFSerializable zfself
 typedef for self
 
- Protected Types inherited from ZFInterface
typedef _ZFP_ObjI_Base zfsuper
 typedef for super (always ZFInterface for an interface type)
 
typedef ZFInterface zfself
 typedef for self
 
- Protected Types inherited from ZFCopyable
typedef ZFInterface zfsuper
 typedef for super (always ZFInterface for an interface type)
 
typedef ZFCopyable zfself
 typedef for self
 
- Protected Types inherited from ZFIterable
typedef ZFInterface zfsuper
 typedef for super (always ZFInterface for an interface type)
 
typedef ZFIterable zfself
 typedef for self
 

Protected Member Functions

virtual void objectOnInit (ZFContainer *another)
 see ZFObject::objectOnInit
 
virtual void objectOnInit (void)
 override this to init your object
 
virtual void objectOnDealloc (void)
 override this to destroy your object
 
- Protected Member Functions inherited from ZFContainer
virtual void contentOnChange (void)
 see EventContentOnChange
 
virtual void contentOnAdd (ZFObject *element)
 see EventContentOnAdd
 
virtual void contentOnRemove (ZFObject *element)
 see EventContentOnRemove
 
virtual zfbool serializableOnCheck (void)
 see serializable
 
virtual zfbool serializableOnSerializeFromData (const ZFSerializableData &serializableData, zfstring *outErrorHint=0, ZFSerializableData *outErrorPos=0)
 for serializable data that has "category" attribute, ZFSerializable would ignore it and leave it to subclass to resolve, see ZFSerializable
 
virtual zfbool serializableOnSerializeToData (ZFSerializableData &serializableData, ZFSerializable *referencedOwnerOrNull, zfstring *outErrorHint=0)
 see ZFSerializable::serializableOnSerializeToData
 
virtual zfbool serializableOnSerializeToDataWithRef (ZFSerializableData &serializableData, ZFSerializable *referencedOwnerOrNull, zfstring *outErrorHint=0)
 see serializableOnSerializeToData
 
virtual void copyableOnCopyFrom (ZFObject *anotherObj)
 called by copy to copy contents from anotherObj
 
- Protected Member Functions inherited from ZFObject
virtual void objectInfoOnAppend (zfstring &ret)
 called by objectInfoT to append object info as a chain
 
virtual void observerOnAdd (zfidentity eventId)
 called when add first observer
 
virtual void observerOnRemove (zfidentity eventId)
 called when remove last observer
 
virtual void observerOnEvent (const ZFArgs &zfargs)
 notified when observerNotify
 
virtual void objectOnInitFinish (void)
 called after objectOnInit, safe to call virtual functions here
 
virtual void objectOnRetain (void)
 called to retain object
 
virtual void objectOnRelease (void)
 called to release object
 
virtual void objectPropertyValueOnUpdate (const ZFProperty *property, const void *oldValue)
 see EventObjectPropertyValueOnUpdate
 
- Protected Member Functions inherited from ZFSerializable
virtual ZFSerializablePropertyType serializableOnCheckPropertyType (const ZFProperty *property)
 check the property type that serializable should do what while serializing
 
virtual zfbool serializableOnSerializePropertyFromData (const ZFSerializableData &propertyData, const ZFProperty *property, zfstring *outErrorHint=0, ZFSerializableData *outErrorPos=0)
 see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable
 
virtual zfbool serializableOnSerializePropertyToData (ZFSerializableData &ownerData, const ZFProperty *property, ZFSerializable *referencedOwnerOrNull, zfstring *outErrorHint=0)
 see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable
 
virtual zfbool serializableOnSerializeEmbededPropertyFromData (const ZFSerializableData &propertyData, const ZFProperty *property, zfstring *outErrorHint=0, ZFSerializableData *outErrorPos=0)
 see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable
 
virtual zfbool serializableOnSerializeEmbededPropertyToData (ZFSerializableData &ownerData, const ZFProperty *property, ZFSerializable *referencedOwnerOrNull, zfstring *outErrorHint=0)
 see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable
 
virtual zfbool serializableOnSerializeFromString (const zfchar *src, zfindex srcLen=((zfindex) -1), zfstring *errorHint=0)
 see serializeFromString
 
virtual zfbool serializableOnSerializeToString (zfstring &ret, zfstring *errorHint=0)
 see serializeFromString
 

Detailed Description

container of ZFObject, see ZFContainer

Member Function Documentation

◆ classData()

virtual const ZFClass * ZFArray::classData ( void )
inlinevirtual

get instance's class info

Reimplemented from ZFContainer.

◆ count()

virtual zfindex ZFArray::count ( )
virtual

return number of content

Implements ZFIterable.

◆ add()

virtual void ZFArray::add ( zfindex indexAddTo,
ZFObject * obj )
virtual

insert object at index, assert failure if obj = zfnull or index out of range [0, count]

Note
null object is not allowed, use ZFNull if necessary

◆ addFrom()

virtual void ZFArray::addFrom ( ZFContainer * another)
virtual

add objects from another container

Implements ZFContainer.

◆ removeAll()

virtual void ZFArray::removeAll ( )
virtual

remove all object

Implements ZFIterable.

◆ iter()

virtual zfiterator ZFArray::iter ( )
virtual

see zfiterator

Implements ZFIterable.

◆ iterFind()

virtual zfiterator ZFArray::iterFind ( ZFObject * element)
virtual

see zfiterator

Implements ZFIterable.

◆ iterValid()

virtual zfbool ZFArray::iterValid ( const zfiterator & it)
virtual

see zfiterator

Implements ZFIterable.

◆ iterNext()

virtual void ZFArray::iterNext ( zfiterator & it)
virtual

see zfiterator

Implements ZFIterable.

◆ iterValue() [1/2]

virtual zfany ZFArray::iterValue ( const zfiterator & it)
virtual

see zfiterator

Implements ZFIterable.

◆ iterValue() [2/2]

virtual void ZFArray::iterValue ( zfiterator & it,
ZFObject * value )
virtual

see zfiterator

Implements ZFIterable.

◆ iterRemove()

virtual void ZFArray::iterRemove ( zfiterator & it)
virtual

see zfiterator

Implements ZFIterable.

◆ iterAdd() [1/2]

virtual void ZFArray::iterAdd ( ZFObject * value)
virtual

see zfiterator

Implements ZFIterable.

◆ iterAdd() [2/2]

virtual void ZFArray::iterAdd ( ZFObject * value,
zfiterator & it )
virtual

see zfiterator

Implements ZFIterable.

◆ objectOnInit()

virtual void ZFArray::objectOnInit ( void )
protectedvirtual

override this to init your object

subclass must call superclass's objectOnInit before any other code if override
you may also declare objectOnInit with params like this:

zfclass Parent : ... {
...
protected:
virtual void objectOnInit(void) {...};
};
zfclass Child : Parent {
protected:
// override all parent's objectOnInit is also required,
// because of function hiding of C++
virtual void objectOnInit(void) {
}
// custom init entry
virtual void objectOnInit(Params...) {
this->objectOnInit();
// your extra init steps
...
}
};
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
virtual void objectOnInit(void)
override this to init your object
virtual void objectOnInit(void)
override this to init your object
Warning
objectOnInit and objectOnDealloc is called as a virtual function, take good care of other virtual function call, use zfself::func() instead of this->func() if necessary, or use objectOnInitFinish/objectOnDeallocPrepare, or declare your own constructor with ZFOBJECT_DECLARE_WITH_CUSTOM_CTOR
Note
(ZFTAG_LIMITATION) due to limitations of C++, if your parent type declared objectOnInit with different params, and your child type want to override part of those objectOnInit, then your child type must also override all objectOnInit that parent declared, otherwise, some may be hidden
for objects that designed not to be allocated by user, you should use ZFOBJECT_PRIVATE_ALLOC, typically usage:
ZFOBJECT_PRIVATE_ALLOC("should be created by MyObject::instanceForXxx only")
public:
static zfauto instanceForXxx(xxx) {
// can only be allocated by reflection
}
};
static void func(void) {
// MyObject *obj = zfAlloc(MyObject); // would compile error
zfauto obj = MyObject::instanceForXxx(xxx); // OK
}
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:126
#define ZFOBJECT_PRIVATE_ALLOC(...)
mark this object can not be allocated directly
Definition ZFObjectDeclare.h:240
static const ZFClass * ClassData(void)
get class info
Definition ZFArray.h:18
zfauto newInstance(void) const
make a new instance of ZFObject dynamically, which is described by ZFClass
base class of all objects
Definition ZFObjectCore.h:209
a ZFObject holder which would release content object automatically when destroyed
Definition zfautoFwd.h:34

Reimplemented from ZFObject.

◆ objectOnDealloc()

virtual void ZFArray::objectOnDealloc ( void )
protectedvirtual

override this to destroy your object

subclass must call superclass's objectOnDealloc after any other code if override
see objectOnInit for more info

Reimplemented from ZFObject.


The documentation for this class was generated from the following file: