IDS peak genericC++ v1.9.0
Loading...
Searching...
No Matches
peak_boolean_node.hpp
Go to the documentation of this file.
1
11#pragma once
12
13
15#include <peak/dll_interface/peak_dll_interface_util.hpp>
18
19
20namespace peak
21{
22namespace core
23{
24namespace nodes
25{
26
31class BooleanNode : public Node
32{
33public:
34 BooleanNode() = delete;
35 ~BooleanNode() override = default;
36 BooleanNode(const BooleanNode& other) = delete;
37 BooleanNode& operator=(const BooleanNode& other) = delete;
38 BooleanNode(BooleanNode&& other) = delete;
39 BooleanNode& operator=(BooleanNode&& other) = delete;
40
53 bool Value(NodeCacheUsePolicy cacheUsePolicy = NodeCacheUsePolicy::UseCache) const;
54
65 void SetValue(bool value);
66
67private:
68 friend ClassCreator<BooleanNode>;
69 BooleanNode(PEAK_BOOLEAN_NODE_HANDLE booleanNodeHandle, const std::weak_ptr<NodeMap>& parentNodeMap);
70 PEAK_BOOLEAN_NODE_HANDLE m_backendHandle;
71};
72
73} /* namespace nodes */
74} /* namespace core */
75} /* namespace peak */
76
77/* Implementation */
78namespace peak
79{
80namespace core
81{
82namespace nodes
83{
84
86 PEAK_BOOLEAN_NODE_HANDLE booleanNodeHandle, const std::weak_ptr<NodeMap>& parentNodeMap)
87 : Node(QueryNumericFromCInterfaceFunction<PEAK_NODE_HANDLE>([&](PEAK_NODE_HANDLE* nodeHandle) {
88 return PEAK_C_ABI_PREFIX PEAK_BooleanNode_ToNode(booleanNodeHandle, nodeHandle);
89 }),
90 parentNodeMap)
91 , m_backendHandle(booleanNodeHandle)
92{}
93
94inline bool BooleanNode::Value(NodeCacheUsePolicy cacheUsePolicy /* = NodeCacheUsePolicy::UseCache */) const
95{
96 return QueryNumericFromCInterfaceFunction<PEAK_BOOL8>([&](PEAK_BOOL8* value) {
98 m_backendHandle, static_cast<PEAK_NODE_CACHE_USE_POLICY>(cacheUsePolicy), value);
99 }) > 0;
100}
101
102inline void BooleanNode::SetValue(bool value)
103{
104 CallAndCheckCInterfaceFunction(
105 [&] { return PEAK_C_ABI_PREFIX PEAK_BooleanNode_SetValue(m_backendHandle, value); });
106}
107
108} /* namespace nodes */
109} /* namespace core */
110} /* namespace peak */
Represents a GenAPI boolean node.
Definition peak_boolean_node.hpp:32
BooleanNode(const BooleanNode &other)=delete
bool Value(NodeCacheUsePolicy cacheUsePolicy=NodeCacheUsePolicy::UseCache) const
Returns the value.
Definition peak_boolean_node.hpp:94
BooleanNode & operator=(BooleanNode &&other)=delete
BooleanNode(BooleanNode &&other)=delete
void SetValue(bool value)
Sets the given value.
Definition peak_boolean_node.hpp:102
BooleanNode & operator=(const BooleanNode &other)=delete
~BooleanNode() override=default
Represents a GenAPI node.
Definition peak_node.hpp:122
NodeCacheUsePolicy
Definition peak_common_node_enums.hpp:25
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_dynamic_loader.h:33
PEAK_C_API PEAK_BooleanNode_ToNode(PEAK_BOOLEAN_NODE_HANDLE booleanNodeHandle, PEAK_NODE_HANDLE *nodeHandle)
Casts the given boolean node to a node.
PEAK_C_API PEAK_BooleanNode_SetValue(PEAK_BOOLEAN_NODE_HANDLE booleanNodeHandle, PEAK_BOOL8 value)
Tells the given boolean node to set the given value.
PEAK_C_API PEAK_BooleanNode_GetValue(PEAK_BOOLEAN_NODE_HANDLE booleanNodeHandle, PEAK_NODE_CACHE_USE_POLICY cacheUsePolicy, PEAK_BOOL8 *value)
Asks the given boolean node for its value.
struct PEAK_NODE * PEAK_NODE_HANDLE
Definition peak_backend.h:412
int32_t PEAK_NODE_CACHE_USE_POLICY
Definition peak_backend.h:225
int8_t PEAK_BOOL8
Definition peak_backend.h:26
struct PEAK_BOOLEAN_NODE * PEAK_BOOLEAN_NODE_HANDLE
Definition peak_backend.h:420
#define PEAK_C_ABI_PREFIX
Definition peak_dll_defines.h:16