NVIDIA DeepStream SDK API Reference

6.4 Release
databridge.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_BRIDGE_HPP
15 #define DS3D_COMMON_HPP_DATA_BRIDGE_HPP
16 
17 #include <ds3d/common/common.h>
18 #include <ds3d/common/func_utils.h>
20 
21 namespace ds3d {
22 
55 class GuardDataBridge : public GuardDataProcess<abiDataBridge> {
57 
58 public:
59  template <typename... Args>
60  GuardDataBridge(Args&&... args) : _Base(std::forward<Args>(args)...)
61  {
62  }
63  ~GuardDataBridge() = default;
64 
66  const struct VideoBridge2dInput* inputData, abiOnDataCB::CppFunc outputDataCB,
67  abiOnBridgeDataCB::CppFunc inputConsumedCB)
68  {
69  GuardCB<abiOnDataCB> guardOutputCb;
70  GuardCB<abiOnBridgeDataCB> guardConsumedCb;
71  guardOutputCb.setFn<ErrCode, const abiRefDataMap*>(std::move(outputDataCB));
72  guardConsumedCb.setFn<ErrCode, const struct VideoBridge2dInput*>(std::move(inputConsumedCB));
73 
74  DS_ASSERT(ptr());
75  ErrCode code =
76  ptr()->process_i(inputData, guardOutputCb.abiRef(), guardConsumedCb.abiRef());
77  return code;
78  }
79 };
80 
81 } // namespace ds3d
82 
83 #endif // DS3D_COMMON_HPP_DATA_BRIDGE_HPP
ds3d::GuardDataBridge::process
ErrCode process(const struct VideoBridge2dInput *inputData, abiOnDataCB::CppFunc outputDataCB, abiOnBridgeDataCB::CppFunc inputConsumedCB)
Definition: databridge.hpp:65
DS_ASSERT
#define DS_ASSERT(...)
Definition: defines.h:31
ds3d::GuardDataBridge::GuardDataBridge
GuardDataBridge(Args &&... args)
Definition: databridge.hpp:60
ds3d::GuardDataProcess
Definition: dataprocess.hpp:29
ds3d::VideoBridge2dInput
Definition: idatatype.h:152
dataprocess.hpp
ds3d::GuardRef< abiCB >::abiRef
abiCB * abiRef() const
Definition: obj.hpp:269
ds3d::abiRefT< abiDataMap >
ds3d::GuardDataBridge::~GuardDataBridge
~GuardDataBridge()=default
ds3d::abiDataBridge::process_i
virtual ErrCode process_i(const struct VideoBridge2dInput *inputData, const abiOnDataCB *outputDataCb, const abiOnBridgeDataCB *dataConsumedCb)=0
ds3d::ErrCode
ErrCode
Definition: common.h:43
ds3d::GuardDataBridge
GuardDataBridge is the safe access entry for abiDataBridge.
Definition: databridge.hpp:55
ds3d::GuardCB::setFn
void setFn(F f)
Definition: obj.hpp:297
common.h
ds3d::GuardDataT< abiDataBridge >::ptr
abiDataBridge * ptr() const
Definition: obj.hpp:361
func_utils.h
ds3d
Definition: lidar_3d_datatype.h:33
ds3d::abiCallBackT::CppFunc
std::function< void(Args...)> CppFunc
Definition: abi_obj.h:72
ds3d::GuardCB
Definition: obj.hpp:285