|
|
NVIDIA DeepStream SDK API Reference
|
9.2 Release
|
Go to the documentation of this file.
18 #ifndef _DS3D_COMMON_HPP_DATAMAP_HPP
19 #define _DS3D_COMMON_HPP_DATAMAP_HPP
21 #include <ds3d/common/func_utils.h>
23 #include <ds3d/common/hpp/obj.hpp>
27 class GuardDataMap :
public GuardDataT<abiDataMap> {
28 using _Base = GuardDataT<abiDataMap>;
34 template <
typename... Args >
47 template <
class T, _EnableIfVal
idIdType<T> = true>
74 template <
class T, _EnableIfVal
idIdType<T> = true>
92 return ptr()->
copy_i(input.ptr(), policy, policyData);
96 char* policyData =
nullptr)
100 return ptr()->
copy_i(input.ptr(), key.empty() ?
nullptr : key.c_str(), policy, policyData);
120 if (!value.abiRef()) {
123 return this->
setRefData(name, *value.abiRef());
130 using t = std::remove_const_t<T>;
132 abiRefAny* u =
new abiRefCast<T, void>(value);
142 template <
class T, _EnableIfVal
idIdType<T>>
146 using t = std::remove_const_t<std::remove_reference_t<T>>;
148 ShrdPtr<t>
data(
new t(value));
156 using t = std::remove_const_t<T>;
172 abiRefT<T>* refData =
nullptr;
174 guardData.reset(refData);
182 using t = std::remove_const_t<T>;
190 abiRefT<T>* u =
new abiRefCast<void, T>(
const_cast<abiRefAny*
>(ud),
false);
201 using t = std::remove_const_t<T>;
210 value = AbiRefToPtr<void, T>(*ud);
215 template <
class T, _EnableIfVal
idIdType<T>>
219 using t = std::remove_const_t<T>;
228 value = *(
static_cast<T*
>(ud->data()));
234 #endif // _DS3D_COMMON_HPP_DATAMAP_HPP
ErrCode setGuardData(const KeyName &name, const GuardDataT< T > &value)
std::unique_ptr< T, std::function< void(T *)> > UniqPtr
static constexpr TIdType __typeid()
virtual ErrCode clear_i()=0
virtual void printDebug_i() const =0
ErrCode getPtrData(const KeyName &name, ShrdPtr< T > &value)
ErrCode setPtrData(const KeyName &name, ShrdPtr< T > value)
virtual int32_t getSize_i()=0
virtual ErrCode copy_i(abiDataMap *input, DataMapPolicy policy, char *policyData)=0
ErrCode removeData(const KeyName &name)
virtual bool has_i(const char *key) const =0
ErrCode setRefData(const KeyName &name, const abiRefT< T > &value)
virtual ErrCode removeBuf_i(const char *key)=0
ErrCode getRefData(const KeyName &name, abiRefT< T > *&value)
bool hasData(const KeyName &name)
constexpr absl::OTABSL_OPTION_NAMESPACE_NAME::remove_reference_t< T > && move(T &&t) noexcept
virtual ErrCode setBuf_i(const char *key, TIdType tid, abiRefAny *data)=0
abiRefT< void > abiRefAny
ErrCode getGuardData(const KeyName &name, GuardDataT< T > &value)
ErrCode getData(const KeyName &name, T &value)
ErrCode setData(const KeyName &name, const T &value)
ErrCode copy(GuardDataMap input, DataMapPolicy policy=DataMapPolicy::kCopyPolicyNone, char *policyData=nullptr)
std::shared_ptr< T > ShrdPtr
Extensions to the C++ standard library.
virtual ErrCode getBuf_i(const char *key, TIdType tid, const abiRefAny *&data) const =0
GuardDataMap(Args &&... args)
constexpr T && forward(absl::OTABSL_OPTION_NAMESPACE_NAME::remove_reference_t< T > &t) noexcept
ErrCode copy(GuardDataMap input, const KeyName key, DataMapPolicy policy=DataMapPolicy::kCopyPolicyNone, char *policyData=nullptr)
ErrCode setPtrData(const KeyName &name, UniqPtr< T > value)