15 #include <peak/dll_interface/peak_dll_interface_util.hpp> 69 void SetCurrentEntry(
const std::shared_ptr<EnumerationEntryNode>& entry);
105 std::shared_ptr<EnumerationEntryNode>
FindEntry(
const std::string& symbolicValue)
const;
119 std::shared_ptr<EnumerationEntryNode>
FindEntry(int64_t value)
const;
129 std::vector<std::shared_ptr<EnumerationEntryNode>>
Entries()
const;
132 friend ClassCreator<EnumerationNode>;
155 , m_backendHandle(enumerationNodeHandle)
161 auto enumerationEntryNodeHandle = QueryNumericFromCInterfaceFunction<PEAK_ENUMERATION_ENTRY_NODE_HANDLE>(
164 static_cast<PEAK_NODE_CACHE_USE_POLICY>(cacheUsePolicy), _enumerationEntryNodeHandle);
167 auto nodeHandle = QueryNumericFromCInterfaceFunction<PEAK_NODE_HANDLE>([&](
PEAK_NODE_HANDLE* _nodeHandle) {
178 if (entry ==
nullptr)
183 CallAndCheckCInterfaceFunction([&] {
190 CallAndCheckCInterfaceFunction([&] {
192 m_backendHandle, symbolicValue.c_str(), symbolicValue.size() + 1);
198 CallAndCheckCInterfaceFunction(
204 auto enumerationEntryNodeHandle = QueryNumericFromCInterfaceFunction<PEAK_ENUMERATION_ENTRY_NODE_HANDLE>(
207 m_backendHandle, symbolicValue.c_str(), symbolicValue.size() + 1, _enumerationEntryNodeHandle);
210 auto nodeHandle = QueryNumericFromCInterfaceFunction<PEAK_NODE_HANDLE>([&](
PEAK_NODE_HANDLE* _nodeHandle) {
221 auto enumerationEntryNodeHandle = QueryNumericFromCInterfaceFunction<PEAK_ENUMERATION_ENTRY_NODE_HANDLE>(
224 m_backendHandle, value, _enumerationEntryNodeHandle);
227 auto nodeHandle = QueryNumericFromCInterfaceFunction<PEAK_NODE_HANDLE>([&](
PEAK_NODE_HANDLE* _nodeHandle) {
238 auto numEntries = QueryNumericFromCInterfaceFunction<size_t>([&](
size_t* _numEntries) {
242 std::vector<std::shared_ptr<EnumerationEntryNode>> entries;
243 for (
size_t x = 0; x < numEntries; ++x)
245 auto enumerationEntryNodeHandle = QueryNumericFromCInterfaceFunction<PEAK_ENUMERATION_ENTRY_NODE_HANDLE>(
248 m_backendHandle, x, _enumerationEntryNodeHandle);
251 auto nodeHandle = QueryNumericFromCInterfaceFunction<PEAK_NODE_HANDLE>(
254 enumerationEntryNodeHandle, _nodeHandle);
259 entries.emplace_back(std::dynamic_pointer_cast<EnumerationEntryNode>(
ParentNodeMap()->FindNode(nodeName)));
Represents a GenAPI enumeration entry node.
Definition: peak_enumeration_entry_node.hpp:34
EnumerationNode & operator=(const EnumerationNode &other)=delete
The exception thrown for pass an invalid argument to a function.
Definition: peak_exception.hpp:73
void SetCurrentEntry(const std::shared_ptr< EnumerationEntryNode > &entry)
Sets the current entry.
Definition: peak_enumeration_node.hpp:176
PEAK_C_API PEAK_EnumerationNode_GetNumEntries(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, size_t *numEntries)
Asks the given enumeration node for its number of entries.
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition: peak_dynamic_loader.h:32
PEAK_C_API PEAK_EnumerationNode_SetCurrentEntryBySymbolicValue(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, const char *symbolicValue, size_t symbolicValueSize)
Tells the given enumeration node to set its current entry by the given symbolic value.
PEAK_C_API PEAK_EnumerationNode_SetCurrentEntry(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, PEAK_ENUMERATION_ENTRY_NODE_HANDLE enumerationEntryNodeHandle)
Tells the given enumeration node to set its current entry to the given entry.
NodeCacheUsePolicy
Definition: peak_common_node_enums.hpp:24
std::shared_ptr< EnumerationEntryNode > CurrentEntry(NodeCacheUsePolicy cacheUsePolicy=NodeCacheUsePolicy::UseCache) const
Returns the current entry.
Definition: peak_enumeration_node.hpp:158
PEAK_C_API PEAK_EnumerationNode_ToNode(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, PEAK_NODE_HANDLE *nodeHandle)
Casts the given enumeration node to a node.
struct PEAK_NODE * PEAK_NODE_HANDLE
Definition: peak_backend.h:409
struct PEAK_ENUMERATION_ENTRY_NODE * PEAK_ENUMERATION_ENTRY_NODE_HANDLE
Definition: peak_backend.h:445
struct PEAK_ENUMERATION_NODE * PEAK_ENUMERATION_NODE_HANDLE
Definition: peak_backend.h:441
std::vector< std::shared_ptr< EnumerationEntryNode > > Entries() const
Returns the entries.
Definition: peak_enumeration_node.hpp:236
std::shared_ptr< NodeMap > ParentNodeMap() const
Returns the parent node map.
Definition: peak_node.hpp:839
~EnumerationNode() override=default
PEAK_C_API PEAK_EnumerationNode_SetCurrentEntryByValue(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, int64_t value)
Tells the given enumeration node to set its current entry by the given value.
PEAK_C_API PEAK_EnumerationNode_GetEntry(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, size_t index, PEAK_ENUMERATION_ENTRY_NODE_HANDLE *enumerationEntryNodeHandle)
Asks the given enumeration node for the entry with the given index.
PEAK_C_API PEAK_EnumerationEntryNode_ToNode(PEAK_ENUMERATION_ENTRY_NODE_HANDLE enumerationEntryNodeHandle, PEAK_NODE_HANDLE *nodeHandle)
Casts the given enumeration entry node to a node.
#define PEAK_C_ABI_PREFIX
Definition: peak_dll_defines.h:16
PEAK_C_API PEAK_EnumerationNode_FindEntryBySymbolicValue(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, const char *symbolicValue, size_t symbolicValueSize, PEAK_ENUMERATION_ENTRY_NODE_HANDLE *enumerationEntryNodeHandle)
Tells the given enumeration node to find a entry with the given symbolic value.
PEAK_C_API PEAK_EnumerationNode_GetCurrentEntry(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, PEAK_NODE_CACHE_USE_POLICY cacheUsePolicy, PEAK_ENUMERATION_ENTRY_NODE_HANDLE *enumerationEntryNodeHandle)
Asks the given enumeration node for its current entry.
PEAK_C_API PEAK_EnumerationNode_FindEntryByValue(PEAK_ENUMERATION_NODE_HANDLE enumerationNodeHandle, int64_t value, PEAK_ENUMERATION_ENTRY_NODE_HANDLE *enumerationEntryNodeHandle)
Tells the given enumeration node to find a entry with the given value.
Represents a GenAPI node.
Definition: peak_node.hpp:121
std::string GetNodeName(PEAK_NODE_HANDLE nodeHandle)
Definition: peak_node.hpp:552
std::shared_ptr< EnumerationEntryNode > FindEntry(const std::string &symbolicValue) const
Tries to find a entry with the given symbolic value.
Definition: peak_enumeration_node.hpp:202
Represents a GenAPI enumeration node.
Definition: peak_enumeration_node.hpp:36