Safir SDK Core
Loading...
Searching...
No Matches
TypeHierarchy.h
Go to the documentation of this file.
1#pragma once
2
9
10#include <Safir/Dob/Item.h>
13
14#include <Safir/Utilities/Internal/VisibilityHelpers.h>
15
16#ifdef safir_generated_Core_cpp_EXPORTS
17# define SAFIR_GENERATED_Core_API SAFIR_HELPER_DLL_EXPORT
18#else
19# define SAFIR_GENERATED_Core_API SAFIR_HELPER_DLL_IMPORT
20# define SAFIR_LIBRARY_NAME "safir_generated-Core-cpp"
21# include <Safir/Utilities/Internal/AutoLink.h>
22#endif
23#define SAFIR_GENERATED_Core_API_LOCAL SAFIR_HELPER_DLL_LOCAL
24
28namespace Safir
29{
33namespace Websocket
34{
38namespace Typesystem
39{
40
41 class TypeHierarchy; //forward declaration
42 typedef std::shared_ptr<TypeHierarchy> TypeHierarchyPtr;
43 typedef std::shared_ptr<const TypeHierarchy> TypeHierarchyConstPtr;
44
48
54 {
55 public:
56 //Constructors and Create routines
60
61 //RootClass
68
69
70 //Enums
77
78
80 static const Safir::Dob::Typesystem::TypeId ClassTypeId = 5435616844396953845LL;
81
82 //Type id for TypeHierarchy
83 Safir::Dob::Typesystem::TypeId GetTypeId() const override {return ClassTypeId;}
84
85 //Check if anything in the object has change flags set
86 bool IsChanged() override;
87
88 //Recursively set all change flags in the object
89 void SetChanged(const bool changed) override;
90
91
92 //Reflection part (Don't use unless you really know what you're doing!!)
94 const Safir::Dob::Typesystem::ArrayIndex index) override;
96 const Safir::Dob::Typesystem::ArrayIndex index) const override;
97
98 void WriteToBlob(Safir::Dob::Typesystem::Int64 handle) const override;
100
101 private:
102
103#ifdef _MSC_VER
104#pragma warning (push)
105#pragma warning (disable : 4251)
106#endif
107
110
111#ifdef _MSC_VER
112#pragma warning (pop)
113#endif
114 };
115
116} // Typesystem
117} // Websocket
118} // Safir
119
120
#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
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
Safir::Dob::Typesystem::ObjectContainerImpl< TypeHierarchy > TypeHierarchyContainer
Definition TypeHierarchy.h:45
Safir::Dob::Typesystem::ArrayContainer< TypeHierarchyContainer > TypeHierarchyContainerArray
Definition TypeHierarchy.h:46
Safir::Dob::Typesystem::GenericObjectSequenceContainer< TypeHierarchy > TypeHierarchySequenceContainer
Definition TypeHierarchy.h:47
std::shared_ptr< const TypeHierarchy > TypeHierarchyConstPtr
Definition TypeHierarchy.h:43
std::shared_ptr< TypeHierarchy > TypeHierarchyPtr
Definition TypeHierarchy.h:42
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
The baseclass for all items.
Definition Item.h:46
Representation of the Dob typesystem.
Definition TypeHierarchy.h:54
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.
const Safir::Websocket::Typesystem::EnumTypeSequenceContainer & Enums() const
List of all enumeration types in the Dob typesystem.
void SetChanged(const bool changed) override
Recursively set change flags in all members of this object.
static Safir::Dob::Typesystem::MemberIndex EnumsMemberIndex()
Safir::Dob::Typesystem::TypeId GetTypeId() const override
Get the type id of this object.
Definition TypeHierarchy.h:83
const Safir::Dob::Typesystem::ContainerProxy< Safir::Websocket::Typesystem::ClassTypeContainer > RootClass() const
The Object root class in the Dob typesystem.
Safir::Dob::Typesystem::ContainerProxy< Safir::Websocket::Typesystem::ClassTypeContainer > RootClass()
TypeHierarchy(Safir::Dob::Typesystem::Int64 handle)
Safir::Websocket::Typesystem::EnumTypeSequenceContainer & Enums()
static Safir::Dob::Typesystem::MemberIndex RootClassMemberIndex()
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.
bool IsChanged() override
Check if any member of this object is changed.
Safir::Dob::Typesystem::ObjectPtr Clone() const override
Create a copy of the object.
void WriteToBlob(Safir::Dob::Typesystem::Int64 handle) const override
Write the object to a blob.