Safir SDK Core
Loading...
Searching...
No Matches
NodeInfo.h
Go to the documentation of this file.
1#pragma once
2
9
10#include <Safir/Dob/Entity.h>
12#include <Safir/Dob/NodeState.h>
14
15#include <Safir/Utilities/Internal/VisibilityHelpers.h>
16
17#ifdef safir_generated_Core_cpp_EXPORTS
18# define SAFIR_GENERATED_Core_API SAFIR_HELPER_DLL_EXPORT
19#else
20# define SAFIR_GENERATED_Core_API SAFIR_HELPER_DLL_IMPORT
21# define SAFIR_LIBRARY_NAME "safir_generated-Core-cpp"
22# include <Safir/Utilities/Internal/AutoLink.h>
23#endif
24#define SAFIR_GENERATED_Core_API_LOCAL SAFIR_HELPER_DLL_LOCAL
25
29namespace Safir
30{
34namespace Dob
35{
36
37 class NodeInfo; //forward declaration
38 typedef std::shared_ptr<NodeInfo> NodeInfoPtr;
39 typedef std::shared_ptr<const NodeInfo> NodeInfoConstPtr;
40
44
52 {
53 public:
54 //Constructors and Create routines
58
59 //NodeName
67
68
69 //IpAddress
77
78
79 //NodeType
87
88
89 //State
97
98
99 //MemoryLevel
107
108
110 static const Safir::Dob::Typesystem::TypeId ClassTypeId = -7384790295819199437LL;
111
112 //Type id for NodeInfo
113 Safir::Dob::Typesystem::TypeId GetTypeId() const override {return ClassTypeId;}
114
115 //Check if anything in the object has change flags set
116 bool IsChanged() override;
117
118 //Recursively set all change flags in the object
119 void SetChanged(const bool changed) override;
120
121
122 //Reflection part (Don't use unless you really know what you're doing!!)
124 const Safir::Dob::Typesystem::ArrayIndex index) override;
126 const Safir::Dob::Typesystem::ArrayIndex index) const override;
127
128 void WriteToBlob(Safir::Dob::Typesystem::Int64 handle) const override;
130
131 private:
132
133#ifdef _MSC_VER
134#pragma warning (push)
135#pragma warning (disable : 4251)
136#endif
137
143
144#ifdef _MSC_VER
145#pragma warning (pop)
146#endif
147 };
148
149} // Dob
150} // Safir
151
152
#define SAFIR_GENERATED_Core_API
Definition BackdoorCommand.h:18
This namespace contains all the functionality and definitions of the SAFIR SDK.
Definition Backdoor.h:31
std::shared_ptr< const NodeInfo > NodeInfoConstPtr
Definition NodeInfo.h:39
Safir::Dob::Typesystem::ObjectContainerImpl< NodeInfo > NodeInfoContainer
Definition NodeInfo.h:41
std::shared_ptr< NodeInfo > NodeInfoPtr
Definition NodeInfo.h:38
Safir::Dob::Typesystem::ArrayContainer< NodeInfoContainer > NodeInfoContainerArray
Definition NodeInfo.h:42
Safir::Dob::Typesystem::GenericObjectSequenceContainer< NodeInfo > NodeInfoSequenceContainer
Definition NodeInfo.h:43
DotsC_Int32 Int32
32 bit integer type.
Definition Defs.h:66
DotsC_Int64 Int64
64 bit integer type.
Definition Defs.h:69
std::shared_ptr< Object > ObjectPtr
A smart pointer to an Object.
Definition Object.h:44
DotsC_ArrayIndex ArrayIndex
Index into an array.
Definition Defs.h:246
DotsC_TypeId TypeId
A unique type identifier.
Definition Defs.h:218
DotsC_MemberIndex MemberIndex
The index of a member in an object.
Definition Defs.h:237
STL container for arrays of DOB-containers.
Definition ArrayContainer.h:59
Base class for all Containers.
Definition ContainerBase.h:44
Definition ContainerProxies.h:39
Template class for all containers of automatically generated DOB objects.
Definition ObjectContainer.h:190
Container for strings (std::wstring).
Definition ValueContainers.h:127
The baseclass for all entities.
Definition Entity.h:46
Node information for all nodes currently in the system.
Definition NodeInfo.h:52
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::MemoryLevel::EnumerationContainer > MemoryLevel()
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > NodeName()
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::MemoryLevel::EnumerationContainer > MemoryLevel() const
Current shared memory usage level of the node.
NodeInfo(Safir::Dob::Typesystem::Int64 handle)
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::NodeState::EnumerationContainer > State() const
This is the current state of the node.
static Safir::Dob::Typesystem::MemberIndex MemoryLevelMemberIndex()
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > NodeName() const
The name of the node.
static Safir::Dob::Typesystem::MemberIndex StateMemberIndex()
Safir::Dob::Typesystem::ObjectPtr Clone() const override
Create a copy of the object.
const Safir::Dob::Typesystem::ContainerBase & GetMember(const Safir::Dob::Typesystem::MemberIndex member, const Safir::Dob::Typesystem::ArrayIndex index) const override
Get a const reference to a member container from an object.
Safir::Dob::Typesystem::ContainerBase & GetMember(const Safir::Dob::Typesystem::MemberIndex member, const Safir::Dob::Typesystem::ArrayIndex index) override
Get a reference to a member container from an object.
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > IpAddress() const
The Ip address used by the node.
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > IpAddress()
void WriteToBlob(Safir::Dob::Typesystem::Int64 handle) const override
Write the object to a blob.
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > NodeType()
bool IsChanged() override
Check if any member of this object is changed.
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > NodeType() const
The node type of the node.
static Safir::Dob::Typesystem::Int32 IpAddressMaxStringLength()
void SetChanged(const bool changed) override
Recursively set change flags in all members of this object.
static Safir::Dob::Typesystem::Int32 NodeNameMaxStringLength()
static Safir::Dob::Typesystem::MemberIndex NodeNameMemberIndex()
static Safir::Dob::Typesystem::Int32 NodeTypeMaxStringLength()
static NodeInfoPtr Create()
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::NodeState::EnumerationContainer > State()
static Safir::Dob::Typesystem::MemberIndex IpAddressMemberIndex()
Safir::Dob::Typesystem::TypeId GetTypeId() const override
Get the type id of this object.
Definition NodeInfo.h:113
static Safir::Dob::Typesystem::MemberIndex NodeTypeMemberIndex()