15 inline HandleGuard<GenApi::NodeMapEnumerator>::HandleGuard(
void *handle) noexcept
16 : HandleGuard<GenApi::NodeMapEnumerator>(handle, [](
void *handle) { CVB_CALL_CAPI(
ReleaseObject(handle)); })
29 class NodeMapEnumerator final
36 using GuardType = HandleGuard<NodeMapEnumerator>;
45 NodeMapEnumerator() noexcept
50 NodeMapEnumerator(HandleGuard<NodeMapEnumerator> &&guard, PrivateTag) noexcept
56 NodeMapEnumerator(
const NodeMapEnumerator &other) =
delete;
57 NodeMapEnumerator &operator=(
const NodeMapEnumerator &other) =
delete;
76 NodeMapEnumerator &
operator=(NodeMapEnumerator &&other)
noexcept
76 NodeMapEnumerator &
operator=(NodeMapEnumerator &&other)
noexcept {
…}
101 return NodeMapEnumerator(HandleGuard<NodeMapEnumerator>(
object.
Handle()), PrivateTag{});
113 return handle_.Handle();
126 auto nodeMapCount = NodeMapCount();
127 names.reserve(nodeMapCount);
155 auto iter = nodeMaps_.find(name);
156 if (iter != nodeMaps_.end())
158 if (
auto nodeMap = iter->second.lock())
162 CExports::NODEMAP handle =
nullptr;
164 CVB_CALL_CAPI_CHECKED(NMH2GetNodeMap(
Handle(), cname.c_str(), handle));
167 nodeMaps_[name] = nodeMap;
172 int NodeMapCount() const noexcept
174 size_t numNodeMaps = 0;
175 CExports::NMH2GetNum(
Handle(), numNodeMaps);
176 return static_cast<int>(numNodeMaps);
179 String NameAt(
int index)
const
181 size_t bufferSize = 0;
182 CVB_CALL_CAPI_CHECKED(NMH2GetID(
Handle(), index,
nullptr, bufferSize));
185 CVB_CALL_CAPI_CHECKED(NMH2GetID(
Handle(), index, buffer.data(), bufferSize));
187 return String(buffer.begin(), buffer.end() - 1);
192 HandleGuard<NodeMapEnumerator> handle_;
29 class NodeMapEnumerator final {
…};
T back_inserter(T... args)
Lazy enumeration of node maps.
Definition node_map_enumerator.hpp:30
NodeMapPtr operator[](const String &name) const
Name based node map access.
Definition node_map_enumerator.hpp:140
NodeMapEnumerator & operator=(NodeMapEnumerator &&other) noexcept
Move operator.
Definition node_map_enumerator.hpp:76
static NodeMapEnumerator FromObject(const T &object)
Create a node map enumerator for a given object.
Definition node_map_enumerator.hpp:98
NodeMapEnumerator(NodeMapEnumerator &&other) noexcept
Move constructor.
Definition node_map_enumerator.hpp:64
NodeMapPtr NodeMap(const String &name) const
Name based node map access.
Definition node_map_enumerator.hpp:153
std::vector< String > Names() const
Get the names of all available node maps.
Definition node_map_enumerator.hpp:123
void * Handle() const noexcept
Classic API device handle.
Definition node_map_enumerator.hpp:111
static NodeMapPtr FromHandle(HandleGuard< NodeMap > &&guard, const String &name, const Device &device)
Creates a node map from a classic API handle.
Definition detail_node_map.hpp:26
cvbbool_t ShareObject(OBJ Object)
cvbbool_t ReleaseObject(OBJ &Object)
T move_if_noexcept(T... args)
Namespace for GenApi based device configuration.
Definition decl_fw_updater.hpp:29
std::shared_ptr< NodeMapEnumerator > NodeMapEnumeratorPtr
Convenience shared pointer for ValueNode.
Definition genapi.hpp:90
std::shared_ptr< NodeMap > NodeMapPtr
Convenience shared pointer for NodeMap.
Definition genapi.hpp:22
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
std::string String
String for wide characters or unicode characters.
Definition string.hpp:49