float_64_reg_node.hpp
1 #pragma once
2 
3 #include "../global.hpp"
4 
5 #include "float_reg_node.hpp"
6 
7 namespace Cvb
8 {
9  CVB_BEGIN_INLINE_NS
10  namespace GevServer
11  {
17  {
18  public:
19  Float64RegNode(HandleGuard<Node>&& guard) noexcept : FloatRegNode(std::move(guard)) {}
20 
34  static Float64RegNodePtr Create(const String& name, const GevServer::Namespace& nameSpace, const std::int64_t& address)
35  {
36  String okName = EnsureNodeNameOnly(name);
37  return std::make_shared<Float64RegNode>(HandleGuard<Node>(
38  CExports::CreateGSFloat64NodeTyped(okName.data(), static_cast<CExports::TGSNamespace>(nameSpace), address)));
39  }
40 
52  static Float64RegNodePtr Create(const String& name, const GevServer::Namespace& nameSpace)
53  {
54  return Create(ParseName(name), nameSpace, -1);
55  }
56 
74  static Float64RegNodePtr Create(const String& name, const std::int64_t& address)
75  {
76  return Create(ParseName(name), ParseNamespace(name), address);
77  }
78 
93  static Float64RegNodePtr Create(const String& name) { return Create(ParseName(name), ParseNamespace(name)); }
94  };
95  }
96  CVB_END_INLINE_NS
97 }
STL class.
static Float64RegNodePtr Create(const String &name, const GevServer::Namespace &nameSpace)
Creates a new float_64_reg_node with the given name , nameSpace and an automatically assigned addres...
Definition: float_64_reg_node.hpp:52
static String ParseName(const String &name)
Gets the name part of the given node name .
Definition: decl_node.hpp:606
static GevServer::Namespace ParseNamespace(const String &name)
Gets the Namespace from the given name .
Definition: decl_node.hpp:584
An float64 FloatRegNode node.
Definition: float_64_reg_node.hpp:16
Namespace
The possible name spaces a node can be in.
Definition: gevserver.hpp:147
static Float64RegNodePtr Create(const String &name)
Creates a new float_64_reg_node with the given name and and automatically assigned address.
Definition: float_64_reg_node.hpp:93
static String EnsureNodeNameOnly(const String &name)
Throws if the given name has a namespace prefix.
Definition: decl_node.hpp:557
STL class.
Root namespace for the Image Manager interface.
Definition: version.hpp:11
static Float64RegNodePtr Create(const String &name, const std::int64_t &address)
Creates a new float_64_reg_node with the given name .
Definition: float_64_reg_node.hpp:74
Floating point value register.
Definition: float_reg_node.hpp:19
static Float64RegNodePtr Create(const String &name, const GevServer::Namespace &nameSpace, const std::int64_t &address)
Creates a new float_64_reg_node with the given name and nameSpace .
Definition: float_64_reg_node.hpp:34