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

The base class for all DOB objects. More...

#include <Safir/Dob/Typesystem/Object.h>

Inheritance diagram for Safir::Dob::Typesystem::Object:
[legend]

Public Member Functions

 Object ()
 Default constructor.
 
virtual ~Object ()
 Virtual destructor.
 
virtual Dob::Typesystem::ObjectPtr Clone () const
 Create a copy of the object.
 
virtual Dob::Typesystem::TypeId GetTypeId () const
 Get the type id of this object.
 
virtual bool IsChanged ()
 Check if any member of this object is changed.
 
virtual void SetChanged (const bool changed)
 Recursively set change flags in all members of this object.
 
Reflection part.

These methods allow applications to manipulate the members of objects without having been compiled against it.

There should be no reason for most applications to use these methods.

virtual ContainerBaseGetMember (const Dob::Typesystem::MemberIndex member, const Dob::Typesystem::ArrayIndex index)
 Get a reference to a member container from an object.
 
virtual const ContainerBaseGetMember (const Dob::Typesystem::MemberIndex member, const Dob::Typesystem::ArrayIndex index) const
 Get a const reference to a member container from an object.
 
Blob serialization/deserialization part.

These functions are for internal use only! Their names and functionality are likely to change in the near future!

 Object (Safir::Dob::Typesystem::Int64 handle)
 Create an Object from a blob.
 
virtual void WriteToBlob (Safir::Dob::Typesystem::Int64 handle) const
 Write the object to a blob.
 

Static Public Member Functions

static Dob::Typesystem::ObjectPtr Create ()
 Creates a new Object.
 

Static Public Attributes

static const Dob::Typesystem::TypeId ClassTypeId = 5955188366590963785LL
 The TypeId of the Object class.
 

Detailed Description

The base class for all DOB objects.

This class is the base class for all automatically generated DOB classes.

Constructor & Destructor Documentation

◆ Object() [1/2]

Safir::Dob::Typesystem::Object::Object ( )

Default constructor.

◆ ~Object()

virtual Safir::Dob::Typesystem::Object::~Object ( )
virtual

Virtual destructor.

Needed to ensure proper destruction of Object pointers.

◆ Object() [2/2]

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

Create an Object from a blob.

Parameters
handle[in] - Handle to a blobReader to deserialize.

Member Function Documentation

◆ Clone()

virtual Dob::Typesystem::ObjectPtr Safir::Dob::Typesystem::Object::Clone ( ) const
virtual

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 in Safir::Application::BackdoorCommand, Safir::Control::Command, Safir::Control::ConnectionStatisticsAllNodesResponse, Safir::Control::ConnectionStatisticsItem, Safir::Control::ConnectionStatisticsResponse, Safir::Control::GetConnectionStatistics, Safir::Control::GetConnectionStatisticsAllNodes, Safir::Control::Parameters, Safir::Control::Status, Safir::Dob::ConnectionInfo, Safir::Dob::CreateRoutineParameters, Safir::Dob::Entity, Safir::Dob::EntityIdResponse, Safir::Dob::ErrorListResponse, Safir::Dob::ErrorResponse, Safir::Dob::Item, Safir::Dob::Message, Safir::Dob::MirroredNodeInfo, Safir::Dob::NodeInfo, Safir::Dob::NodeParameters, Safir::Dob::NodeType, Safir::Dob::Parametrization, Safir::Dob::PersistenceParameters, Safir::Dob::PersistentDataReady, Safir::Dob::PersistentDataStatus, Safir::Dob::ProcessInfo, Safir::Dob::QueueParameters, Safir::Dob::QueueRule, Safir::Dob::Response, Safir::Dob::ResponseErrorInfo, Safir::Dob::ResponseGeneralErrorCodes, Safir::Dob::Service, Safir::Dob::Struct, Safir::Dob::SuccessResponse, Safir::Dob::ThisNodeParameters, Safir::Time::LibraryParameters, Safir::Utilities::ForEach::BriefResponse, Safir::Utilities::ForEach::DeleteAllRequest, Safir::Utilities::ForEach::DeleteRequest, Safir::Utilities::ForEach::FullResponse, Safir::Utilities::ForEach::UpdateRequest, Safir::Websocket::Parameters, Safir::Websocket::Typesystem::ClassType, Safir::Websocket::Typesystem::EnumType, Safir::Websocket::Typesystem::Member, and Safir::Websocket::Typesystem::TypeHierarchy.

◆ Create()

static Dob::Typesystem::ObjectPtr Safir::Dob::Typesystem::Object::Create ( )
static

Creates a new Object.

Creates a new Object on the heap and returns a smart pointer to it.

Returns
A smart pointer to a new object of type Object.

◆ GetMember() [1/2]

virtual ContainerBase & Safir::Dob::Typesystem::Object::GetMember ( const Dob::Typesystem::MemberIndex member,
const Dob::Typesystem::ArrayIndex index )
virtual

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 in Safir::Application::BackdoorCommand, Safir::Control::Command, Safir::Control::ConnectionStatisticsAllNodesResponse, Safir::Control::ConnectionStatisticsItem, Safir::Control::ConnectionStatisticsResponse, Safir::Control::GetConnectionStatistics, Safir::Control::GetConnectionStatisticsAllNodes, Safir::Control::Parameters, Safir::Control::Status, Safir::Dob::ConnectionInfo, Safir::Dob::CreateRoutineParameters, Safir::Dob::Entity, Safir::Dob::EntityIdResponse, Safir::Dob::ErrorListResponse, Safir::Dob::ErrorResponse, Safir::Dob::Item, Safir::Dob::Message, Safir::Dob::MirroredNodeInfo, Safir::Dob::NodeInfo, Safir::Dob::NodeParameters, Safir::Dob::NodeType, Safir::Dob::Parametrization, Safir::Dob::PersistenceParameters, Safir::Dob::PersistentDataReady, Safir::Dob::PersistentDataStatus, Safir::Dob::ProcessInfo, Safir::Dob::QueueParameters, Safir::Dob::QueueRule, Safir::Dob::Response, Safir::Dob::ResponseErrorInfo, Safir::Dob::ResponseGeneralErrorCodes, Safir::Dob::Service, Safir::Dob::Struct, Safir::Dob::SuccessResponse, Safir::Dob::ThisNodeParameters, Safir::Time::LibraryParameters, Safir::Utilities::ForEach::BriefResponse, Safir::Utilities::ForEach::DeleteAllRequest, Safir::Utilities::ForEach::DeleteRequest, Safir::Utilities::ForEach::FullResponse, Safir::Utilities::ForEach::UpdateRequest, Safir::Websocket::Parameters, Safir::Websocket::Typesystem::ClassType, Safir::Websocket::Typesystem::EnumType, Safir::Websocket::Typesystem::Member, and Safir::Websocket::Typesystem::TypeHierarchy.

◆ GetMember() [2/2]

virtual const ContainerBase & Safir::Dob::Typesystem::Object::GetMember ( const Dob::Typesystem::MemberIndex member,
const Dob::Typesystem::ArrayIndex index ) const
virtual

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 in Safir::Application::BackdoorCommand, Safir::Control::Command, Safir::Control::ConnectionStatisticsAllNodesResponse, Safir::Control::ConnectionStatisticsItem, Safir::Control::ConnectionStatisticsResponse, Safir::Control::GetConnectionStatistics, Safir::Control::GetConnectionStatisticsAllNodes, Safir::Control::Parameters, Safir::Control::Status, Safir::Dob::ConnectionInfo, Safir::Dob::CreateRoutineParameters, Safir::Dob::Entity, Safir::Dob::EntityIdResponse, Safir::Dob::ErrorListResponse, Safir::Dob::ErrorResponse, Safir::Dob::Item, Safir::Dob::Message, Safir::Dob::MirroredNodeInfo, Safir::Dob::NodeInfo, Safir::Dob::NodeParameters, Safir::Dob::NodeType, Safir::Dob::Parametrization, Safir::Dob::PersistenceParameters, Safir::Dob::PersistentDataReady, Safir::Dob::PersistentDataStatus, Safir::Dob::ProcessInfo, Safir::Dob::QueueParameters, Safir::Dob::QueueRule, Safir::Dob::Response, Safir::Dob::ResponseErrorInfo, Safir::Dob::ResponseGeneralErrorCodes, Safir::Dob::Service, Safir::Dob::Struct, Safir::Dob::SuccessResponse, Safir::Dob::ThisNodeParameters, Safir::Time::LibraryParameters, Safir::Utilities::ForEach::BriefResponse, Safir::Utilities::ForEach::DeleteAllRequest, Safir::Utilities::ForEach::DeleteRequest, Safir::Utilities::ForEach::FullResponse, Safir::Utilities::ForEach::UpdateRequest, Safir::Websocket::Parameters, Safir::Websocket::Typesystem::ClassType, Safir::Websocket::Typesystem::EnumType, Safir::Websocket::Typesystem::Member, and Safir::Websocket::Typesystem::TypeHierarchy.

◆ GetTypeId()

virtual Dob::Typesystem::TypeId Safir::Dob::Typesystem::Object::GetTypeId ( ) const
virtual

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 in Safir::Application::BackdoorCommand, Safir::Control::Command, Safir::Control::ConnectionStatisticsAllNodesResponse, Safir::Control::ConnectionStatisticsItem, Safir::Control::ConnectionStatisticsResponse, Safir::Control::GetConnectionStatistics, Safir::Control::GetConnectionStatisticsAllNodes, Safir::Control::Parameters, Safir::Control::Status, Safir::Dob::ConnectionInfo, Safir::Dob::CreateRoutineParameters, Safir::Dob::Entity, Safir::Dob::EntityIdResponse, Safir::Dob::ErrorListResponse, Safir::Dob::ErrorResponse, Safir::Dob::Item, Safir::Dob::Message, Safir::Dob::MirroredNodeInfo, Safir::Dob::NodeInfo, Safir::Dob::NodeParameters, Safir::Dob::NodeType, Safir::Dob::Parametrization, Safir::Dob::PersistenceParameters, Safir::Dob::PersistentDataReady, Safir::Dob::PersistentDataStatus, Safir::Dob::ProcessInfo, Safir::Dob::QueueParameters, Safir::Dob::QueueRule, Safir::Dob::Response, Safir::Dob::ResponseErrorInfo, Safir::Dob::ResponseGeneralErrorCodes, Safir::Dob::Service, Safir::Dob::Struct, Safir::Dob::SuccessResponse, Safir::Dob::ThisNodeParameters, Safir::Time::LibraryParameters, Safir::Utilities::ForEach::BriefResponse, Safir::Utilities::ForEach::DeleteAllRequest, Safir::Utilities::ForEach::DeleteRequest, Safir::Utilities::ForEach::FullResponse, Safir::Utilities::ForEach::UpdateRequest, Safir::Websocket::Parameters, Safir::Websocket::Typesystem::ClassType, Safir::Websocket::Typesystem::EnumType, Safir::Websocket::Typesystem::Member, and Safir::Websocket::Typesystem::TypeHierarchy.

◆ IsChanged()

virtual bool Safir::Dob::Typesystem::Object::IsChanged ( )
virtual

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 in Safir::Application::BackdoorCommand, Safir::Control::Command, Safir::Control::ConnectionStatisticsAllNodesResponse, Safir::Control::ConnectionStatisticsItem, Safir::Control::ConnectionStatisticsResponse, Safir::Control::GetConnectionStatistics, Safir::Control::GetConnectionStatisticsAllNodes, Safir::Control::Parameters, Safir::Control::Status, Safir::Dob::ConnectionInfo, Safir::Dob::CreateRoutineParameters, Safir::Dob::Entity, Safir::Dob::EntityIdResponse, Safir::Dob::ErrorListResponse, Safir::Dob::ErrorResponse, Safir::Dob::Item, Safir::Dob::Message, Safir::Dob::MirroredNodeInfo, Safir::Dob::NodeInfo, Safir::Dob::NodeParameters, Safir::Dob::NodeType, Safir::Dob::Parametrization, Safir::Dob::PersistenceParameters, Safir::Dob::PersistentDataReady, Safir::Dob::PersistentDataStatus, Safir::Dob::ProcessInfo, Safir::Dob::QueueParameters, Safir::Dob::QueueRule, Safir::Dob::Response, Safir::Dob::ResponseErrorInfo, Safir::Dob::ResponseGeneralErrorCodes, Safir::Dob::Service, Safir::Dob::Struct, Safir::Dob::SuccessResponse, Safir::Dob::ThisNodeParameters, Safir::Time::LibraryParameters, Safir::Utilities::ForEach::BriefResponse, Safir::Utilities::ForEach::DeleteAllRequest, Safir::Utilities::ForEach::DeleteRequest, Safir::Utilities::ForEach::FullResponse, Safir::Utilities::ForEach::UpdateRequest, Safir::Websocket::Parameters, Safir::Websocket::Typesystem::ClassType, Safir::Websocket::Typesystem::EnumType, Safir::Websocket::Typesystem::Member, and Safir::Websocket::Typesystem::TypeHierarchy.

◆ SetChanged()

virtual void Safir::Dob::Typesystem::Object::SetChanged ( const bool changed)
virtual

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 in Safir::Application::BackdoorCommand, Safir::Control::Command, Safir::Control::ConnectionStatisticsAllNodesResponse, Safir::Control::ConnectionStatisticsItem, Safir::Control::ConnectionStatisticsResponse, Safir::Control::GetConnectionStatistics, Safir::Control::GetConnectionStatisticsAllNodes, Safir::Control::Parameters, Safir::Control::Status, Safir::Dob::ConnectionInfo, Safir::Dob::CreateRoutineParameters, Safir::Dob::Entity, Safir::Dob::EntityIdResponse, Safir::Dob::ErrorListResponse, Safir::Dob::ErrorResponse, Safir::Dob::Item, Safir::Dob::Message, Safir::Dob::MirroredNodeInfo, Safir::Dob::NodeInfo, Safir::Dob::NodeParameters, Safir::Dob::NodeType, Safir::Dob::Parametrization, Safir::Dob::PersistenceParameters, Safir::Dob::PersistentDataReady, Safir::Dob::PersistentDataStatus, Safir::Dob::ProcessInfo, Safir::Dob::QueueParameters, Safir::Dob::QueueRule, Safir::Dob::Response, Safir::Dob::ResponseErrorInfo, Safir::Dob::ResponseGeneralErrorCodes, Safir::Dob::Service, Safir::Dob::Struct, Safir::Dob::SuccessResponse, Safir::Dob::ThisNodeParameters, Safir::Time::LibraryParameters, Safir::Utilities::ForEach::BriefResponse, Safir::Utilities::ForEach::DeleteAllRequest, Safir::Utilities::ForEach::DeleteRequest, Safir::Utilities::ForEach::FullResponse, Safir::Utilities::ForEach::UpdateRequest, Safir::Websocket::Parameters, Safir::Websocket::Typesystem::ClassType, Safir::Websocket::Typesystem::EnumType, Safir::Websocket::Typesystem::Member, and Safir::Websocket::Typesystem::TypeHierarchy.

◆ WriteToBlob()

virtual void Safir::Dob::Typesystem::Object::WriteToBlob ( Safir::Dob::Typesystem::Int64 handle) const
virtual

Write the object to a blob.

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

Reimplemented in Safir::Application::BackdoorCommand, Safir::Control::Command, Safir::Control::ConnectionStatisticsAllNodesResponse, Safir::Control::ConnectionStatisticsItem, Safir::Control::ConnectionStatisticsResponse, Safir::Control::GetConnectionStatistics, Safir::Control::GetConnectionStatisticsAllNodes, Safir::Control::Parameters, Safir::Control::Status, Safir::Dob::ConnectionInfo, Safir::Dob::CreateRoutineParameters, Safir::Dob::Entity, Safir::Dob::EntityIdResponse, Safir::Dob::ErrorListResponse, Safir::Dob::ErrorResponse, Safir::Dob::Item, Safir::Dob::Message, Safir::Dob::MirroredNodeInfo, Safir::Dob::NodeInfo, Safir::Dob::NodeParameters, Safir::Dob::NodeType, Safir::Dob::Parametrization, Safir::Dob::PersistenceParameters, Safir::Dob::PersistentDataReady, Safir::Dob::PersistentDataStatus, Safir::Dob::ProcessInfo, Safir::Dob::QueueParameters, Safir::Dob::QueueRule, Safir::Dob::Response, Safir::Dob::ResponseErrorInfo, Safir::Dob::ResponseGeneralErrorCodes, Safir::Dob::Service, Safir::Dob::Struct, Safir::Dob::SuccessResponse, Safir::Dob::ThisNodeParameters, Safir::Time::LibraryParameters, Safir::Utilities::ForEach::BriefResponse, Safir::Utilities::ForEach::DeleteAllRequest, Safir::Utilities::ForEach::DeleteRequest, Safir::Utilities::ForEach::FullResponse, Safir::Utilities::ForEach::UpdateRequest, Safir::Websocket::Parameters, Safir::Websocket::Typesystem::ClassType, Safir::Websocket::Typesystem::EnumType, Safir::Websocket::Typesystem::Member, and Safir::Websocket::Typesystem::TypeHierarchy.

Member Data Documentation

◆ ClassTypeId

const Dob::Typesystem::TypeId Safir::Dob::Typesystem::Object::ClassTypeId = 5955188366590963785LL
static

The TypeId of the Object class.