Safir SDK Core
Loading...
Searching...
No Matches
Safir::Dob::NodeType Class Reference

Defines a number of characteristics that control how nodes of a certain type communicates. More...

#include </home/lars/safir/safir-sdk-core/src/safir_dou/gen/cpp/include/Safir/Dob/NodeType.h>

Inheritance diagram for Safir::Dob::NodeType:
[legend]
Collaboration diagram for Safir::Dob::NodeType:
[legend]

Public Member Functions

 NodeType ()
 
Safir::Dob::Typesystem::ObjectPtr Clone () const override
 Create a copy of the object.
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainerName () const
 Name of the node type.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainerName ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainerMulticastAddressControl () const
 Multicast address and port used for the control channel for nodes of this type.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainerMulticastAddressControl ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainerMulticastAddressData () const
 Multicast address and port used for the control channel for nodes of this type.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainerMulticastAddressData ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Si64::SecondContainerHeartbeatInterval () const
 How often shall heartbeats/keepalives be sent.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Si64::SecondContainerHeartbeatInterval ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32ContainerMaxLostHeartbeats () const
 How many lost heartbeats before marking nodes of this type as dead.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32ContainerMaxLostHeartbeats ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32ContainerSlidingWindowsSize () const
 Size of the sliding window when communicating with this node.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32ContainerSlidingWindowsSize ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32ContainerAckRequestThreshold () const
 Maximum number of outstanding messages before request receiver to ack.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32ContainerAckRequestThreshold ()
 
const Safir::Dob::Typesystem::Si64::SecondSequenceContainerRetryTimeout () const
 Time to wait for Ack before retrying transmission to this node.
 
Safir::Dob::Typesystem::Si64::SecondSequenceContainerRetryTimeout ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainerRequiredForStart () const
 If true, a node of this type can start a system of its own.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainerRequiredForStart ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainerIsLightNode () const
 If true this node type is a light node.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainerIsLightNode ()
 
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainerKeepStateWhileDetached () const
 If this value is set to True, all entities and registrations from other nodes are kept when a light node is getting detached.
 
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainerKeepStateWhileDetached ()
 
Safir::Dob::Typesystem::TypeId GetTypeId () const override
 Get the type id of this object.
 
bool IsChanged () override
 Check if any member of this object is changed.
 
void SetChanged (const bool changed) override
 Recursively set change flags in all members of this object.
 
Safir::Dob::Typesystem::ContainerBaseGetMember (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::ContainerBaseGetMember (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.
 
void WriteToBlob (Safir::Dob::Typesystem::Int64 handle) const override
 Write the object to a blob.
 
 NodeType (Safir::Dob::Typesystem::Int64 handle)
 
- Public Member Functions inherited from Safir::Dob::Item
 Item ()
 
 Item (Safir::Dob::Typesystem::Int64 handle)
 
- Public Member Functions inherited from Safir::Dob::Typesystem::Object
 Object ()
 Default constructor.
 
virtual ~Object ()
 Virtual destructor.
 
 Object (Safir::Dob::Typesystem::Int64 handle)
 Create an Object from a blob.
 

Static Public Member Functions

static NodeTypePtr Create ()
 
static Safir::Dob::Typesystem::MemberIndex NameMemberIndex ()
 
static Safir::Dob::Typesystem::Int32 NameMaxStringLength ()
 
static Safir::Dob::Typesystem::MemberIndex MulticastAddressControlMemberIndex ()
 
static Safir::Dob::Typesystem::Int32 MulticastAddressControlMaxStringLength ()
 
static Safir::Dob::Typesystem::MemberIndex MulticastAddressDataMemberIndex ()
 
static Safir::Dob::Typesystem::Int32 MulticastAddressDataMaxStringLength ()
 
static Safir::Dob::Typesystem::MemberIndex HeartbeatIntervalMemberIndex ()
 
static Safir::Dob::Typesystem::MemberIndex MaxLostHeartbeatsMemberIndex ()
 
static Safir::Dob::Typesystem::MemberIndex SlidingWindowsSizeMemberIndex ()
 
static Safir::Dob::Typesystem::MemberIndex AckRequestThresholdMemberIndex ()
 
static Safir::Dob::Typesystem::MemberIndex RetryTimeoutMemberIndex ()
 
static Safir::Dob::Typesystem::MemberIndex RequiredForStartMemberIndex ()
 
static Safir::Dob::Typesystem::MemberIndex IsLightNodeMemberIndex ()
 
static Safir::Dob::Typesystem::MemberIndex KeepStateWhileDetachedMemberIndex ()
 
- Static Public Member Functions inherited from Safir::Dob::Item
static ItemPtr Create ()
 
- Static Public Member Functions inherited from Safir::Dob::Typesystem::Object
static Dob::Typesystem::ObjectPtr Create ()
 Creates a new Object.
 

Static Public Attributes

static const Safir::Dob::Typesystem::TypeId ClassTypeId = 5771540742031696125LL
 Type id for NodeType.
 
- Static Public Attributes inherited from Safir::Dob::Item
static const Safir::Dob::Typesystem::TypeId ClassTypeId = 6050262633936372658LL
 Type id for Item.
 
- Static Public Attributes inherited from Safir::Dob::Typesystem::Object
static const Dob::Typesystem::TypeId ClassTypeId = 5955188366590963785LL
 The TypeId of the Object class.
 

Detailed Description

Defines a number of characteristics that control how nodes of a certain type communicates.

Used by Safir.Dob.NodeParameters.

Constructor & Destructor Documentation

◆ NodeType() [1/2]

Safir::Dob::NodeType::NodeType ( )

◆ NodeType() [2/2]

Safir::Dob::NodeType::NodeType ( Safir::Dob::Typesystem::Int64 handle)
explicit

Member Function Documentation

◆ AckRequestThreshold() [1/2]

Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32Container > Safir::Dob::NodeType::AckRequestThreshold ( )

◆ AckRequestThreshold() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32Container > Safir::Dob::NodeType::AckRequestThreshold ( ) const

Maximum number of outstanding messages before request receiver to ack.

Should never be more than half SlidingWindowsSize.

◆ AckRequestThresholdMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::AckRequestThresholdMemberIndex ( )
static

◆ Clone()

Safir::Dob::Typesystem::ObjectPtr Safir::Dob::NodeType::Clone ( ) const
overridevirtual

Create a copy of the object.

Will create a copy of the object on the heap and return a smart pointer to it. Use std::static_pointer_cast or std::dynamic_pointer_cast to cast it to the pointer type that you're after.

Returns
A smart pointer to the copy of the object.

Reimplemented from Safir::Dob::Item.

◆ Create()

static NodeTypePtr Safir::Dob::NodeType::Create ( )
static

◆ GetMember() [1/2]

const Safir::Dob::Typesystem::ContainerBase & Safir::Dob::NodeType::GetMember ( const Safir::Dob::Typesystem::MemberIndex member,
const Safir::Dob::Typesystem::ArrayIndex index ) const
overridevirtual

Get a const reference to a member container from an object.

Use the methods in Members to get member indices and array sizes for use with this method.

Note: Do not use this method unless you're very sure it is the one you need!

Parameters
member[in] - The index of the member to get.
index[in] - The array index of the member to get.
Returns
A const reference to the member container.
Exceptions
IllegalValueExceptionIf the index is not in the range of the array.
SoftwareViolationExceptionIf the element is not an array and the index is not 0.

Reimplemented from Safir::Dob::Item.

◆ GetMember() [2/2]

Safir::Dob::Typesystem::ContainerBase & Safir::Dob::NodeType::GetMember ( const Safir::Dob::Typesystem::MemberIndex member,
const Safir::Dob::Typesystem::ArrayIndex index )
overridevirtual

Get a reference to a member container from an object.

Use the methods in Members to get member indices and array sizes for use with this method.

Note: Do not use this method unless you're very sure it is the one you need!

Parameters
member[in] - The index of the member to get.
index[in] - The array index of the member to get.
Returns
A reference to the member container.
Exceptions
IllegalValueExceptionIf the index is not in the range of the array.
SoftwareViolationExceptionIf the element is not an array and the index is not 0.

Reimplemented from Safir::Dob::Item.

◆ GetTypeId()

Safir::Dob::Typesystem::TypeId Safir::Dob::NodeType::GetTypeId ( ) const
overridevirtual

Get the type id of this object.

Gets the type id of the object. Method is virtual to ensure that the right value gets returned for pointers or references.

Note
this method is overridden by all auto-generated classes.
Returns
The TypeId of the object.

Reimplemented from Safir::Dob::Item.

◆ HeartbeatInterval() [1/2]

◆ HeartbeatInterval() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Si64::SecondContainer > Safir::Dob::NodeType::HeartbeatInterval ( ) const

How often shall heartbeats/keepalives be sent.

◆ HeartbeatIntervalMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::HeartbeatIntervalMemberIndex ( )
static

◆ IsChanged()

bool Safir::Dob::NodeType::IsChanged ( )
overridevirtual

Check if any member of this object is changed.

This method will recursively check if any member of the object has its change flag set.

Note
this method is overridden by all auto-generated classes.
Returns
True if any member has changed.

Reimplemented from Safir::Dob::Item.

◆ IsLightNode() [1/2]

◆ IsLightNode() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainer > Safir::Dob::NodeType::IsLightNode ( ) const

If true this node type is a light node.

See user's guide for more info about light nodes. This parameter has default value False. IsLightNode and RequiredForStart cannot both be True.

◆ IsLightNodeMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::IsLightNodeMemberIndex ( )
static

◆ KeepStateWhileDetached() [1/2]

Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainer > Safir::Dob::NodeType::KeepStateWhileDetached ( )

◆ KeepStateWhileDetached() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainer > Safir::Dob::NodeType::KeepStateWhileDetached ( ) const

If this value is set to True, all entities and registrations from other nodes are kept when a light node is getting detached.

When the light node attaches again to a system the state will be synced with the rest of the system. If this value is set to False, all entites and registrations from other nodes are automatically deleted when a light node is getting detached.
This value is mandatory if the node is a light node, i.e IsLightNode=True. If not a light node this value must not be set.

◆ KeepStateWhileDetachedMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::KeepStateWhileDetachedMemberIndex ( )
static

◆ MaxLostHeartbeats() [1/2]

◆ MaxLostHeartbeats() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32Container > Safir::Dob::NodeType::MaxLostHeartbeats ( ) const

How many lost heartbeats before marking nodes of this type as dead.

◆ MaxLostHeartbeatsMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::MaxLostHeartbeatsMemberIndex ( )
static

◆ MulticastAddressControl() [1/2]

Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Safir::Dob::NodeType::MulticastAddressControl ( )

◆ MulticastAddressControl() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Safir::Dob::NodeType::MulticastAddressControl ( ) const

Multicast address and port used for the control channel for nodes of this type.

An empty string or null for this or MulticastAddressData indicates that nodes of this type can't be reached via multicast.

◆ MulticastAddressControlMaxStringLength()

static Safir::Dob::Typesystem::Int32 Safir::Dob::NodeType::MulticastAddressControlMaxStringLength ( )
static

◆ MulticastAddressControlMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::MulticastAddressControlMemberIndex ( )
static

◆ MulticastAddressData() [1/2]

Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Safir::Dob::NodeType::MulticastAddressData ( )

◆ MulticastAddressData() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Safir::Dob::NodeType::MulticastAddressData ( ) const

Multicast address and port used for the control channel for nodes of this type.

An empty string or null for this or MulticastAddressControl indicates that nodes of this type can't be reached via multicast.

◆ MulticastAddressDataMaxStringLength()

static Safir::Dob::Typesystem::Int32 Safir::Dob::NodeType::MulticastAddressDataMaxStringLength ( )
static

◆ MulticastAddressDataMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::MulticastAddressDataMemberIndex ( )
static

◆ Name() [1/2]

◆ Name() [2/2]

Name of the node type.

◆ NameMaxStringLength()

static Safir::Dob::Typesystem::Int32 Safir::Dob::NodeType::NameMaxStringLength ( )
static

◆ NameMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::NameMemberIndex ( )
static

◆ RequiredForStart() [1/2]

◆ RequiredForStart() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::BooleanContainer > Safir::Dob::NodeType::RequiredForStart ( ) const

If true, a node of this type can start a system of its own.

A node with a node type where this parameter is set to false will never start a system of its own, it just waits for a system to join. This parameter is mandatory if node is not a light node, i.e IsLightNode=False. If this node is a light node, then RequiredForStart is optional but is not allowed to be True.

◆ RequiredForStartMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::RequiredForStartMemberIndex ( )
static

◆ RetryTimeout() [1/2]

Safir::Dob::Typesystem::Si64::SecondSequenceContainer & Safir::Dob::NodeType::RetryTimeout ( )

◆ RetryTimeout() [2/2]

const Safir::Dob::Typesystem::Si64::SecondSequenceContainer & Safir::Dob::NodeType::RetryTimeout ( ) const

Time to wait for Ack before retrying transmission to this node.

First resend will use first timeout, second the second timeout and so on. Last one is used until the end.

◆ RetryTimeoutMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::RetryTimeoutMemberIndex ( )
static

◆ SetChanged()

void Safir::Dob::NodeType::SetChanged ( const bool changed)
overridevirtual

Recursively set change flags in all members of this object.

Note
this method is overridden by all auto-generated classes.
Parameters
changed[in] - The value to set the change flags to

Reimplemented from Safir::Dob::Item.

◆ SlidingWindowsSize() [1/2]

Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32Container > Safir::Dob::NodeType::SlidingWindowsSize ( )

◆ SlidingWindowsSize() [2/2]

const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32Container > Safir::Dob::NodeType::SlidingWindowsSize ( ) const

Size of the sliding window when communicating with this node.

Maximum allowed value is 20.

◆ SlidingWindowsSizeMemberIndex()

static Safir::Dob::Typesystem::MemberIndex Safir::Dob::NodeType::SlidingWindowsSizeMemberIndex ( )
static

◆ WriteToBlob()

void Safir::Dob::NodeType::WriteToBlob ( Safir::Dob::Typesystem::Int64 handle) const
overridevirtual

Write the object to a blob.

Parameters
handle[in] - Handle to a blobWriter that is the destination of the serialized object.

Reimplemented from Safir::Dob::Item.

Member Data Documentation

◆ ClassTypeId

const Safir::Dob::Typesystem::TypeId Safir::Dob::NodeType::ClassTypeId = 5771540742031696125LL
static

Type id for NodeType.