14 #ifndef DS3D_COMMON_HPP_DATA_PROCESS_HPP
15 #define DS3D_COMMON_HPP_DATA_PROCESS_HPP
17 #include <ds3d/common/abi_dataprocess.h>
18 #include <ds3d/common/abi_frame.h>
19 #include <ds3d/common/abi_obj.h>
20 #include <ds3d/common/common.h>
21 #include <ds3d/common/func_utils.h>
23 #include <ds3d/common/hpp/datamap.hpp>
24 #include <ds3d/common/hpp/obj.hpp>
28 template <
class abiDataProcessorT, _EnableIfBaseOf<abiProcess, abiDataProcessorT> = true>
29 class GuardDataProcess :
public GuardDataT<abiDataProcessorT> {
30 using _Base = GuardDataT<abiDataProcessorT>;
34 template <
typename... Args >
43 template <
typename DelF>
48 ptr()->setUserData_i(
nullptr);
52 ptr()->setUserData_i(&uData);
59 return (udata ? udata->
data() :
nullptr);
66 guardErrCb.
setFn<
ErrCode,
const char*>(std::move(errCb));
67 ptr()->setErrorCallback_i(*guardErrCb.
abiRef());
70 ErrCode start(
const std::string& content,
const std::string& path =
"")
73 return ptr()->start_i(content.c_str(), content.size(), path.c_str());
79 return ptr()->flush_i();
85 return ptr()->stop_i();
91 return ptr()->state_i();
106 #endif // DS3D_COMMON_HPP_DATA_PROCESS_HPP