GuardDataRender is the safe access entry for abiDataRender.
Applications can use it to make C-based APIs safer. it would manage abiRefDataRender automatically. with that, App user do not need to refCopy_i or destroy abiRefDataRender manually.
For example: abiRefDataRender* rawRefRender = createRender(); GuardDataRender guardRender(rawRefRender, true); // take the ownership of rawRefRender guardRender.setUserData(userdata, [](void*){ ...free... }); guardRender.setErrorCallback([](ErrCode c, const char* msg){ stderr << msg; }); ErrCode c = guardRender.start(config, path); DS_ASSERT(isGood(c)); c = guardRender.start(config, path); // invoke abiDataRender::start_i(...) GuardDataMap data = ...; c = guardRender.preroll(data); // invoke abiDataRender::preroll_i(...) DS_ASSERT(isGood(c)); // invoke abiDataRender::render_i(...) c = guardRender.render(data, [](ErrCode c, const abiRefDataMap* d){ GuardDataMap doneData(*d); // check ErrCode and data. }); DS_ASSERT(isGood(c)); c = guardRender.flush(); // flush all data in queue c = guardRender.stop(); // invoke abiDataRender::stop_i(...) guardRender.reset(); // destroy abiRefDataRender, when all reference // destroyed, abiDataRender would be freed.
Definition at line 53 of file datarender.hpp.


Public Types | |
| using | abiRefType = abiRefT< abiDataRender > |
Public Member Functions | |
| template<typename... Args> | |
| GuardDataRender (Args &&... args) | |
| ~GuardDataRender ()=default | |
| ErrCode | preroll (GuardDataMap datamap) |
| ErrCode | render (GuardDataMap datamap, abiOnDataCB::CppFunc dataDoneCB) |
| GuardWindow | getWindow () const |
| void | setUserData (void *data, DelF delF) |
| virtual void * | getUserData () const |
| void | setErrorCallback (abiErrorCB::CppFunc errCb) |
| ErrCode | start (const std::string &content, const std::string &path="") |
| ErrCode | flush () |
| ErrCode | stop () |
| State | state () const |
| std::string | getCaps (CapsPort port) |
| std::string | getOutputCaps () |
| std::string | getInputCaps () |
| GuardTy | cast () |
| abiDataRender * | ptr () const |
| abiDataRender * | operator-> () const |
| operator bool () const | |
| operator ShrdPtr< abiDataRender > () | |
| abiRefT< abiDataRender > * | release () |
| void | reset (abiRefT< abiDataRender > *abiref=nullptr) |
| abiRefT< abiDataRender > * | abiRef () const |
|
inherited |
|
inline |
Definition at line 58 of file datarender.hpp.
|
default |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Definition at line 76 of file dataprocess.hpp.
|
inlineinherited |
Definition at line 94 of file dataprocess.hpp.
|
inlineinherited |
Definition at line 101 of file dataprocess.hpp.
|
inlineinherited |
Definition at line 100 of file dataprocess.hpp.
|
inlinevirtualinherited |
Definition at line 55 of file dataprocess.hpp.
|
inline |
Definition at line 78 of file datarender.hpp.
References DS_ASSERT, ds3d::abiDataRender::getWindow_i(), and ds3d::GuardDataT< abiDataRender >::ptr().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
Definition at line 63 of file datarender.hpp.
References ds3d::GuardRef< ref, >::abiRef(), DS_ASSERT, ds3d::abiDataRender::preroll_i(), and ds3d::GuardDataT< abiDataRender >::ptr().
|
inlineinherited |
|
inlineinherited |
|
inline |
Definition at line 69 of file datarender.hpp.
References ds3d::GuardRef< ref, >::abiRef(), ds3d::GuardRef< abiCB >::abiRef(), DS_ASSERT, ds3d::GuardDataT< abiDataRender >::ptr(), ds3d::abiDataRender::render_i(), and ds3d::GuardCB< abiCB >::setFn().
|
inlineinherited |
|
inlineinherited |
Definition at line 62 of file dataprocess.hpp.
|
inlineinherited |
Definition at line 44 of file dataprocess.hpp.
|
inlineinherited |
Definition at line 70 of file dataprocess.hpp.
|
inlineinherited |
Definition at line 88 of file dataprocess.hpp.
|
inlineinherited |
Definition at line 82 of file dataprocess.hpp.