Basic GevServer node for device feature access. More...
#include <cvb/gevserver/node.hpp>
Inherited by DefaultNode, and ValueNode.
Public Member Functions | |
void | Add (const NodePtr &item, const NodeList &kind) |
Adds a Node item . More... | |
bool | Remove (const NodePtr &item, const NodeList &kind) |
Remove a single Node item from this collection. More... | |
void * | Handle () const noexcept |
Classic API node handle. More... | |
NodeMapPtr | NodeMap () const |
Gets the node map of this GevServer node. | |
String | ToolTip () const |
Gets the short descriptive text of this node. More... | |
void | SetToolTip (const String &value) |
Sets the short descriptive text of this node. More... | |
String | Description () const |
Gets the long descriptive text of this node. More... | |
void | SetDescription (const String &value) |
Sets the long descriptive text of this node. More... | |
virtual GenApi::AccessMode | AccessMode () const |
Gets the GenApi::AccessMode of this node. | |
Cvb::GenApi::AccessMode | ImposedAccessMode () const |
Gets the node's default AccessMode. More... | |
void | SetImposedAccessMode (const Cvb::GenApi::AccessMode &accessMode) |
Overrides the node's default AccessMode. | |
bool | IsImplemented () const |
Helper to check whether this node is implemented. More... | |
IntegerBaseNodePtr | IsImplementedConfig () const |
Gets the node that specifies whether a node is implemented in the device or not. | |
void | SetIsImplementedConfig (const IntegerBaseNodePtr &node) |
Sets the node that specifies whether a node is implemented in the device or not. More... | |
bool | IsAvailable () const |
Helper to check whether this node is available. More... | |
IntegerBaseNodePtr | IsAvailableConfig () const |
Gets the node that specifies whether a node is currently available or not. More... | |
void | SetIsAvailableConfig (const IntegerBaseNodePtr &node) |
Sets the node that specifies whether a node is currently available or not. More... | |
bool | IsReadable () const |
Helper to check whether this node is readable. More... | |
bool | IsWritable () const |
Helper to check whether this node is writable. More... | |
IntegerBaseNodePtr | IsLockedConfig () const |
Gets the node that specifies whether a node is currently read only or not. More... | |
void | SetIsLockedConfig (const IntegerBaseNodePtr &node) |
Sets the node that specifies whether a node is currently read only or not. More... | |
virtual Cvb::GenApi::CacheMode | CacheMode () const |
Gets the cache mode of this node. More... | |
Cvb::GenApi::Visibility | Visibility () const |
Gets the complexity level of this node. More... | |
void | SetVisibility (const Cvb::GenApi::Visibility &value) |
Gets the complexity level of this node. More... | |
NodePtr | AliasNode () const |
Gets the node that is an alias value for this node. More... | |
void | SetAliasNode (const NodePtr &value) |
Sets the node that is an alias value for this node. More... | |
String | Name () const |
Gets the full name of this node. More... | |
String | NameOnly () const |
Gets the name of this node without namespace. More... | |
GevServer::Namespace | Namespace () const |
Gets the namespace this node is in. More... | |
String | EventID () const |
Nodes with an event identifier may become invalidated if an event/message is delivered from the device. More... | |
bool | IsFeature () const |
Gets whether this node is considered a feature node. More... | |
bool | IsDeprecated () const |
Gets whether this node is considered deprecated. More... | |
String | DisplayName () const |
Gets the display name of this node. More... | |
void | SetDisplayName (const String &value) |
Sets the display name of this node. More... | |
EventCookie | RegisterEventUpdated (std::function< void(Node &)> handler) |
Register a listener to node updated event. More... | |
void | UnregisterEventUpdated (EventCookie eventCookie) noexcept |
Manually unregister a listener to the node updated event. More... | |
template<class NodeT , class ValueConfigNodeType > | |
ValueNodePtr | GetTerminalRegisterNode (const NodeT *node, std::function< bool(Node *)> f) const |
Try to get terminal register node. More... | |
Static Public Member Functions | |
static NodePtr | FromName (const NodeMapPtr &nodeMap, const String &name) |
Factory to create the appropriate Node object on the given nodeMap based on the given name . More... | |
template<class T , class... ARGS> | |
static std::shared_ptr< T > | FromHandle (HandleGuard< Node > &&guard, ARGS &&... args) |
Factory to create the appropriate Node object based on the given handle . More... | |
Protected Member Functions | |
template<class T > | |
std::vector< std::shared_ptr< T > > | GetDependentNodes (const NodeList &type) const |
Gets the nodes categorized by this node. More... | |
Static Protected Member Functions | |
static String | EnsureNodeNameOnly (const String &name) |
Throws if the given name has a namespace prefix. More... | |
static NodePtr | FromHandle (HandleGuard< Node > &&guard, const NodeMapPtr &nodeMap) |
Factory to create the appropriate Node object based on the given handle . More... | |
static GevServer::Namespace | ParseNamespace (const String &name) |
Gets the Namespace from the given name . More... | |
static String | ParseName (const String &name) |
Gets the name part of the given node name . More... | |
static GevServer::NodeType | NodeType (void *handle) |
Gets the node type from the nodes native handle. More... | |
Basic GevServer node for device feature access.
Adds a Node item .
item | Node Object to add. |
kind | GevServer::NodeList Kind of node. |
|
inline |
Gets the node that is an alias value for this node.
Alias nodes give an additional view on a value or can contain summary information for e.g. CategoryNodes.
null
for none.
|
inlinevirtual |
Gets the cache mode of this node.
Any | exception derived from std::exception including CvbException. |
For non-register nodes the cache mode of the register in the value path of the node chain up the the register is used.
Reimplemented in CategoryNode, EnumEntryNode, IntSwissKnifeNode, BooleanNode, CommandNode, EnumerationNode, FloatNode, FloatRegNode, IntRegNode, IntegerNode, StringNode, and StringRegNode.
|
inline |
Gets the long descriptive text of this node.
Any | exception derived from std::exception including CvbException. |
See ToolTip() for the short description.
|
inline |
Gets the display name of this node.
Any | exception derived from std::exception including CvbException. |
String containing the name to display.
Throws if the given name has a namespace prefix.
name | Name to check. |
|
inline |
Nodes with an event identifier may become invalidated if an event/message is delivered from the device.
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
|
inlinestaticprotected |
|
inlinestatic |
|
inlineprotected |
Gets the nodes categorized by this node.
Does | not throw any exception. |
|
inline |
Try to get terminal register node.
|
inlinenoexcept |
Classic API node handle.
Does | not throw any exception. |
It is normally not necessary to work with this handle.
|
inline |
Gets the node's default AccessMode.
null
if no imposing is done or set to clear.
|
inline |
Helper to check whether this node is available.
Any | exception derived from std::exception including CvbException. |
|
inline |
Gets the node that specifies whether a node is currently available or not.
null
for keeping the original AccessMode.
|
inline |
Gets whether this node is considered deprecated.
Any | exception derived from std::exception including CvbException. |
Deprecated nodes are only available because of backward compatibility. New applications should not use these features.
|
inline |
Gets whether this node is considered a feature node.
Any | exception derived from std::exception including CvbException. |
Feature nodes are in a way public/user interface nodes. All nodes that are directly referenced by the root node or other category nodes are considered features.
|
inline |
Helper to check whether this node is implemented.
Any | exception derived from std::exception including CvbException. |
|
inline |
Gets the node that specifies whether a node is currently read only or not.
null
for keeping the original AccessMode.
|
inline |
Helper to check whether this node is readable.
Any | exception derived from std::exception including CvbException. |
|
inline |
Helper to check whether this node is writable.
Any | exception derived from std::exception including CvbException. |
|
inline |
Gets the full name of this node.
Any | exception derived from std::exception including CvbException. |
String containing the namespace of the node (Std or Cust and the node's name separated by double colons (::)).
|
inline |
Gets the name of this node without namespace.
Any | exception derived from std::exception including CvbException. |
String containing the namespace of the node (Std or Cust and the node's name separated by double colons (::)).
|
inline |
Gets the namespace this node is in.
Namespace::Private nodes will not be in the GenApi XML description.
|
inlinestaticprotected |
Gets the node type from the nodes native handle.
[in] | handle | Native node handle |
Gets the name part of the given node name .
name | Name to get the name part of. |
|
inlinestaticprotected |
Gets the Namespace from the given name .
name | Name to determine namespace of. |
|
inline |
Register a listener to node updated event.
[in] | handler | Listener, to node updated event. |
Any | exception derived from std::exception including CvbException. |
Remove a single Node item from this collection.
item | Node Object to remove. |
kind | GevServer::NodeList Kind of node to remove. |
true
if item was removed; false
if not in this collection.
|
inline |
Sets the node that is an alias value for this node.
Alias nodes give an additional view on a value or can contain summary information for e.g. CategoryNodes.
Alias node instance; null
for none.
|
inline |
Sets the long descriptive text of this node.
[in] | value | Long descriptive text. |
Any | exception derived from std::exception including CvbException. |
See ToolTip() for the short description.
|
inline |
Sets the display name of this node.
[in] | value | In Display name including namespace. |
Any | exception derived from std::exception including CvbException. |
String containing the name to display.
|
inline |
Sets the node that specifies whether a node is currently available or not.
Set operation is only possible as long as the GevServer::State is GevServer::State::Configuration.
IConfigurableIntegerNode which states that this node is available when unequal zero. null
for keeping the original AccessMode.
|
inline |
Sets the node that specifies whether a node is implemented in the device or not.
Set operation is only possible as long as the GevServer::State is GevServer::State::Configuration.
IConfigurableIntegerNode which states that this node is implemented when unequal zero. null
for keeping the original AccessMode.
|
inline |
Sets the node that specifies whether a node is currently read only or not.
Set operation is only possible as long as the GevServer::State is GevServer::State::Configuration.
IConfigurableIntegerNode which states that this node is read only when unequal zero. null
for keeping the original AccessMode.
|
inline |
Sets the short descriptive text of this node.
[in] | value | The tool tip text. |
Any | exception derived from std::exception including CvbException. |
|
inline |
Gets the complexity level of this node.
Any | exception derived from std::exception including CvbException. |
|
inline |
Gets the short descriptive text of this node.
Any | exception derived from std::exception including CvbException. |
|
inlinenoexcept |
Manually unregister a listener to the node updated event.
[in] | eventCookie | eventCookie Event cookie, obtained from registering the listener. |
Does | not throw any exception. |
|
inline |
Gets the complexity level of this node.
Any | exception derived from std::exception including CvbException. |