ZFFramework
Loading...
Searching...
No Matches
ZFAppRes Class Reference

util to load resource from remote More...

#include <ZFAppRes.h>

Inheritance diagram for ZFAppRes:
ZFObject

Public Types

enum  
Public Types inherited from ZFObject
enum  

Public Member Functions

virtual const ZFClassclassData (void)
 get instance's class info
virtual void notifyFinish (const ZFCoreArray< ZFPathInfo > &packageSrcList, const zfstring &packagePwd=(zft_zfnull), const zfstring &packageMd5=(zft_zfnull))
 see ZFAppRes
Public Member Functions inherited from ZFObject
const ZFClassclassDynamic (void)
 dynamic class of this object, see ZFClassDynamicRegister
zfindex objectRetainCount (void)
 return the object's retain count
void objectInfoOfInstanceT (zfstring &ret)
 see objectInfoOfInstance
zfstring objectInfoOfInstance (void)
 return a short string describe the object instance
void objectInfoT (zfstring &ret)
 see objectInfo
zfstring objectInfo (void)
 return object info
zfidentity objectHash (void)
 get hash of this object
ZFCompareResult objectCompare (ZFObject *anotherObj)
 compare with anotherObj
ZFCompareResult objectCompareValue (ZFObject *anotherObj)
 explicitly compare object by logical value, see objectCompare
virtual zfauto invoke (const zfstring &methodName)
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfauto invoke (const zfstring &methodName, ZFObject *param0, ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF))
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfbool invokeT (zfauto &ret, zfstring *errorHint, const zfstring &methodName, ZFObject *param0=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF))
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfauto invokeDetail (const zfstring &methodName, const ZFCoreArray< zfauto > &params, zfbool *success=zft_zfnull, zfstring *errorHint=zft_zfnull)
 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 zfstring &key, ZFObject *tag)
 used to hold a object for app's use, auto retained
zfany objectTag (const zfstring &key)
 see objectTag
void objectTagGetAllKeyValue (ZFCoreArray< zfstring > &allKey, ZFCoreArray< zfauto > &allValue)
 get all key value
void objectTagRemove (const zfstring &key)
 remove tag, same as set tag to null
zfauto objectTagRemoveAndGet (const zfstring &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=zft_zfnull, ZFObject *param1=zft_zfnull)
 notify the observer with eventId
void observerNotifyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
void observerNotifyReversely (zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
void observerNotifyReverselyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
ZFObserverobserverHolder (void)
 access the internal observer holder
void on (const zfstring &eventName, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 util to observerAdd
void on (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 util to observerAdd
void onInit (const ZFListener &impl)
 util for script to achieve chained call
void onDealloc (const ZFListener &impl)
 util for script to achieve chained call
zfbool objectInstanceStateCheck (ZFObjectInstanceState state)
 object instance's state
zfbool objectInitRunning (void)
 util method to check whether ZFObjectInstanceStateOnInit or ZFObjectInstanceStateOnInitFinish running
zfbool objectDeallocRunning (void)
 util method to check whether ZFObjectInstanceStateOnDeallocPrepare or ZFObjectInstanceStateOnDealloc running
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

Static Public Member Functions

static const ZFClassClassData (void)
 get class info
static void build (const ZFPathInfo &resultPackage, const ZFPathInfo &sourceDir, const zfstring &packagePwd=(zft_zfnull), const zfstring &relPathInPackage=(zft_zfnull))
 build package with sourceDir
static ZFPathInfo pathInfoForPackage (const ZFPathInfo &packagePathInfo, const zfstring &packagePwd=(zft_zfnull))
 obtain a pathInfo points to root of "zfres" dir of the specified package built by build
static void start (const ZFListener &packageGetter, const zfstring &moduleName=(zft_zfnull))
 start and attach this res moudle
static void start (const ZFCoreArray< ZFPathInfo > &packageInfoList, const zfstring &packagePwd=(zft_zfnull), const zfstring &moduleName=(zft_zfnull))
 start and attach this res moudle
Static Public Member Functions inherited from ZFObject
static const ZFClassClassData (void)
 get class info
static zfidentity E_ObjectBeforeAlloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectAfterAlloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectBeforeDealloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectPropertyValueOnUpdate (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectPropertyValueOnReset (void)
 see ZFObject::observerNotify

Protected Types

typedef ZFObject zfsuper
 class ref to super
typedef ZFAppRes 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

Additional Inherited Members

Protected Member Functions inherited from ZFObject
virtual void objectInfoImpl (zfstring &ret)
 see objectInfo
virtual void objectInfoImplAppend (zfstring &ret)
 see objectInfo
virtual zfidentity objectHashImpl (void)
 see objectHash
virtual ZFCompareResult objectCompareImpl (ZFObject *anotherObj)
 see objectCompare
virtual ZFCompareResult objectCompareValueImpl (ZFObject *anotherObj)
 see objectCompareValue
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 objectOnInit (void)
 override this to init your object
virtual void objectOnInitFinish (void)
 called after objectOnInit, safe to call virtual functions here
virtual void objectOnDeallocPrepare (void)
 called before objectOnDealloc, safe to call virtual functions here
virtual void objectOnDealloc (void)
 override this to destroy your object
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 E_ObjectPropertyValueOnUpdate
virtual void objectPropertyValueOnReset (const ZFProperty *property)
 see E_ObjectPropertyValueOnReset

Detailed Description

util to load resource from remote

typical usage:

ZFAppRes::start([](const ZFArgs &zfargs) {
zfautoT<ZFAppRes> o = zfargs.sender();
// request your server API to obtain download url and password
// can be async task
...
// notifyFinish must be called exactly once
o->notifyFinish(srcList, pwd);
}, "my_module_name");
static void start(const ZFListener &packageGetter, const zfstring &moduleName=(zft_zfnull))
start and attach this res moudle
listener data used by ZFListener
Definition ZFArgs.h:20
zfany const & sender(void) const
owner object or event sender, may be null
type restrict version of zfauto
Definition zfautoFwd.h:108

how it works:

  • preparing the package
  • using the package
    • call ZFAppRes::start to start the resource module, which would use local cache if available, and use remote one for next app launch
    • within the packageGetter, usually you should request your own server's API to obtain package download url, which is a list containing all download mirrors, all of the download mirrors would be tried one by one, until one download successfully
    • finally, the package would be used as ZFResExtPathAdd

Member Function Documentation

◆ classData()

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

get instance's class info

Reimplemented from ZFObject.

◆ start() [1/2]

void ZFAppRes::start ( const ZFListener & packageGetter,
const zfstring & moduleName = (zft_zfnull) )
static

start and attach this res moudle

see ZFAppRes for more info
when moduleName is empty, "default" is used instead

◆ start() [2/2]

void ZFAppRes::start ( const ZFCoreArray< ZFPathInfo > & packageInfoList,
const zfstring & packagePwd = (zft_zfnull),
const zfstring & moduleName = (zft_zfnull) )
static

start and attach this res moudle

when moduleName is empty, "default" is used instead

packageInfoList holds meta info of the package, typically points to a http file in your server, and it must be a valid json file containing the meta info or package:

{
"src" : "http!!https://xxx/xxx.zip", // required, pathInfo of the package
"md5" : "xxx", // optional, md5 of the package
}

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