NVIDIA DeepStream SDK API Reference

7.0 Release
datafilter.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
13 
14 #ifndef DS3D_COMMON_HPP_DATA_FILTER_HPP
15 #define DS3D_COMMON_HPP_DATA_FILTER_HPP
16 
17 #include <ds3d/common/common.h>
18 #include <ds3d/common/func_utils.h>
20 
21 namespace ds3d {
22 
55 class GuardDataFilter : public GuardDataProcess<abiDataFilter> {
57 
58 public:
59  template <typename... Args>
60  GuardDataFilter(Args&&... args) : _Base(std::forward<Args>(args)...)
61  {
62  }
63  ~GuardDataFilter() = default;
64 
66  GuardDataMap datamap, abiOnDataCB::CppFunc outputDataCB,
67  abiOnDataCB::CppFunc inputConsumedCB)
68  {
69  GuardCB<abiOnDataCB> guardOutputCb;
70  GuardCB<abiOnDataCB> guardConsumedCb;
71  guardOutputCb.setFn<ErrCode, const abiRefDataMap*>(std::move(outputDataCB));
72  guardConsumedCb.setFn<ErrCode, const abiRefDataMap*>(std::move(inputConsumedCB));
73 
74  DS_ASSERT(ptr());
75  ErrCode code =
76  ptr()->process_i(datamap.abiRef(), guardOutputCb.abiRef(), guardConsumedCb.abiRef());
77  return code;
78  }
79 };
80 
81 } // namespace ds3d
82 
83 #endif // DS3D_COMMON_HPP_DATA_FILTER_HPP
DS_ASSERT
#define DS_ASSERT(...)
Definition: defines.h:31
ds3d::GuardDataProcess
Definition: dataprocess.hpp:29
dataprocess.hpp
ds3d::GuardRef::abiRef
ref * abiRef() const
Definition: obj.hpp:269
ds3d::abiRefT< abiDataMap >
ds3d::ErrCode
ErrCode
Definition: common.h:43
ds3d::GuardCB::setFn
void setFn(F f)
Definition: obj.hpp:297
ds3d::GuardDataFilter::~GuardDataFilter
~GuardDataFilter()=default
ds3d::GuardDataFilter::process
ErrCode process(GuardDataMap datamap, abiOnDataCB::CppFunc outputDataCB, abiOnDataCB::CppFunc inputConsumedCB)
Definition: datafilter.hpp:65
common.h
ds3d::GuardDataT< abiDataFilter >::ptr
abiDataFilter * ptr() const
Definition: obj.hpp:361
func_utils.h
ds3d::GuardDataMap
Definition: datamap.hpp:21
ds3d::GuardDataFilter::GuardDataFilter
GuardDataFilter(Args &&... args)
Definition: datafilter.hpp:60
ds3d
Definition: lidar_3d_datatype.h:35
ds3d::abiCallBackT::CppFunc
std::function< void(Args...)> CppFunc
Definition: abi_obj.h:72
ds3d::GuardDataFilter
GuardDataFilter is the safe access entry for abiDataFilter.
Definition: datafilter.hpp:55
ds3d::abiDataFilter::process_i
virtual ErrCode process_i(const abiRefDataMap *inputData, const abiOnDataCB *outputDataCb, const abiOnDataCB *dataConsumedCb)=0
ds3d::GuardCB
Definition: obj.hpp:285