Safir SDK Core
Loading...
Searching...
No Matches
Member.h
Go to the documentation of this file.
1#pragma once
2
9
10#include <Safir/Dob/Item.h>
12
13#include <Safir/Utilities/Internal/VisibilityHelpers.h>
14
15#ifdef safir_generated_Core_cpp_EXPORTS
16# define SAFIR_GENERATED_Core_API SAFIR_HELPER_DLL_EXPORT
17#else
18# define SAFIR_GENERATED_Core_API SAFIR_HELPER_DLL_IMPORT
19# define SAFIR_LIBRARY_NAME "safir_generated-Core-cpp"
20# include <Safir/Utilities/Internal/AutoLink.h>
21#endif
22#define SAFIR_GENERATED_Core_API_LOCAL SAFIR_HELPER_DLL_LOCAL
23
27namespace Safir
28{
32namespace Websocket
33{
37namespace Typesystem
38{
39
40 class Member; //forward declaration
41 typedef std::shared_ptr<Member> MemberPtr;
42 typedef std::shared_ptr<const Member> MemberConstPtr;
43
47
53 {
54 public:
55 //Constructors and Create routines
58 static MemberPtr Create();
59
60 //Summary
68
69
70 //Name
78
79
80 //Type
88
89
90 //DictionaryKeyType
98
99
100 //ArraySize
108
109
111 static const Safir::Dob::Typesystem::TypeId ClassTypeId = -587796916060072239LL;
112
113 //Type id for Member
114 Safir::Dob::Typesystem::TypeId GetTypeId() const override {return ClassTypeId;}
115
116 //Check if anything in the object has change flags set
117 bool IsChanged() override;
118
119 //Recursively set all change flags in the object
120 void SetChanged(const bool changed) override;
121
122
123 //Reflection part (Don't use unless you really know what you're doing!!)
125 const Safir::Dob::Typesystem::ArrayIndex index) override;
127 const Safir::Dob::Typesystem::ArrayIndex index) const override;
128
129 void WriteToBlob(Safir::Dob::Typesystem::Int64 handle) const override;
131
132 private:
133
134#ifdef _MSC_VER
135#pragma warning (push)
136#pragma warning (disable : 4251)
137#endif
138
142 Safir::Dob::Typesystem::StringContainer m_DictionaryKeyTypeMember;
144
145#ifdef _MSC_VER
146#pragma warning (pop)
147#endif
148 };
149
150} // Typesystem
151} // Websocket
152} // Safir
153
154
#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_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
std::shared_ptr< Member > MemberPtr
Definition Member.h:41
Safir::Dob::Typesystem::ArrayContainer< MemberContainer > MemberContainerArray
Definition Member.h:45
Safir::Dob::Typesystem::ObjectContainerImpl< Member > MemberContainer
Definition Member.h:44
std::shared_ptr< const Member > MemberConstPtr
Definition Member.h:42
Safir::Dob::Typesystem::GenericObjectSequenceContainer< Member > MemberSequenceContainer
Definition Member.h:46
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 base types.
Definition ValueContainers.h:61
Container for strings (std::wstring).
Definition ValueContainers.h:127
The baseclass for all items.
Definition Item.h:46
Represents a class member in a Dob type.
Definition Member.h:53
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Summary()
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32Container > ArraySize()
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Name() const
Name of member.
Member(Safir::Dob::Typesystem::Int64 handle)
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Type() const
Fully qualified type name.
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::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Name()
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > DictionaryKeyType() const
If member is dictionry this is the fully qualified dictionary key type.
Safir::Dob::Typesystem::TypeId GetTypeId() const override
Get the type id of this object.
Definition Member.h:114
static Safir::Dob::Typesystem::Int32 TypeMaxStringLength()
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > DictionaryKeyType()
static Safir::Dob::Typesystem::Int32 DictionaryKeyTypeMaxStringLength()
static Safir::Dob::Typesystem::MemberIndex SummaryMemberIndex()
void SetChanged(const bool changed) override
Recursively set change flags in all members of this object.
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Summary() const
Member summary.
static Safir::Dob::Typesystem::MemberIndex TypeMemberIndex()
static Safir::Dob::Typesystem::MemberIndex DictionaryKeyTypeMemberIndex()
Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::StringContainer > Type()
const Safir::Dob::Typesystem::ContainerProxy< Safir::Dob::Typesystem::Int32Container > ArraySize() const
If member is array this is the arraySize.
static Safir::Dob::Typesystem::Int32 NameMaxStringLength()
void WriteToBlob(Safir::Dob::Typesystem::Int64 handle) const override
Write the object to a blob.
bool IsChanged() override
Check if any member of this object is changed.
static Safir::Dob::Typesystem::MemberIndex ArraySizeMemberIndex()
static Safir::Dob::Typesystem::MemberIndex NameMemberIndex()
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.
static Safir::Dob::Typesystem::Int32 SummaryMaxStringLength()
Safir::Dob::Typesystem::ObjectPtr Clone() const override
Create a copy of the object.