LeviLamina
Loading...
Searching...
No Matches
BaseAttributeMap.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/platform/brstd/flat_map.h"
7
8// auto generated forward declare list
9// clang-format off
10class Attribute;
15class HashedString;
16struct AttributeData;
19// clang-format on
20
21class BaseAttributeMap {
22public:
23 // BaseAttributeMap inner types define
24 using UnderlyingMapContainer = ::brstd::
25 flat_map<uint, ::AttributeInstance, ::std::less<uint>, ::std::vector<uint>, ::std::vector<::AttributeInstance>>;
26
27public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<
31 8,
32 48,
34 uint,
36 ::std::less<uint>,
37 ::std::vector<uint>,
38 ::std::vector<::AttributeInstance>>>
39 mInstanceMap;
40 ::ll::TypedStorage<8, 24, ::std::vector<::AttributeInstanceHandle>> mDirtyAttributes;
41 ::ll::TypedStorage<8, 8, void (BaseAttributeMap::*)(::AttributeInstance const&)> mOnAttributeModified;
42 // NOLINTEND
43
44public:
45 // prevent constructor by default
46 BaseAttributeMap& operator=(BaseAttributeMap const&);
47 BaseAttributeMap();
48
49public:
50 // member functions
51 // NOLINTBEGIN
52 MCAPI BaseAttributeMap(::BaseAttributeMap const&);
53
54 MCFOLD ::AttributeInstanceRef UnsafePromoteRawRefToAccessRef(::AttributeInstance& rawRef) const;
55
56 MCAPI void _onAttributeModified(::AttributeInstance const& attributeInstance);
57
58#ifdef LL_PLAT_C
59 MCFOLD void _onAttributeModifiedDisabled(::AttributeInstance const&);
60#endif
61
62 MCFOLD ::brstd::associative_adapter<
63 uint,
65 ::std::less<uint>,
66 ::std::vector<uint>,
67 ::std::vector<::AttributeInstance>>::
68 iterator_impl<
69 ::std::_Vector_const_iterator<::std::_Vector_val<::std::_Simple_types<uint>>>,
70 ::std::_Vector_const_iterator<::std::_Vector_val<::std::_Simple_types<::AttributeInstance>>>,
71 ::std::pair<uint const&, ::AttributeInstance const&>> begin() const;
72
73 MCFOLD ::brstd::associative_adapter<
74 uint,
76 ::std::less<uint>,
77 ::std::vector<uint>,
78 ::std::vector<::AttributeInstance>>::
79 iterator_impl<
80 ::std::_Vector_iterator<::std::_Vector_val<::std::_Simple_types<uint>>>,
81 ::std::_Vector_iterator<::std::_Vector_val<::std::_Simple_types<::AttributeInstance>>>,
82 ::std::pair<uint const&, ::AttributeInstance&>>
83 begin();
84
85 MCFOLD void clearDirtyAttributes();
86
87 MCFOLD ::AttributeModificationContext createModificationContext();
88
89#ifdef LL_PLAT_C
90 MCAPI void disableAttributeDirtying();
91#endif
92
93 MCFOLD ::brstd::associative_adapter<
94 uint,
96 ::std::less<uint>,
97 ::std::vector<uint>,
98 ::std::vector<::AttributeInstance>>::
99 iterator_impl<
100 ::std::_Vector_const_iterator<::std::_Vector_val<::std::_Simple_types<uint>>>,
101 ::std::_Vector_const_iterator<::std::_Vector_val<::std::_Simple_types<::AttributeInstance>>>,
102 ::std::pair<uint const&, ::AttributeInstance const&>> end() const;
103
104 MCFOLD ::brstd::associative_adapter<
105 uint,
107 ::std::less<uint>,
108 ::std::vector<uint>,
109 ::std::vector<::AttributeInstance>>::
110 iterator_impl<
111 ::std::_Vector_iterator<::std::_Vector_val<::std::_Simple_types<uint>>>,
112 ::std::_Vector_iterator<::std::_Vector_val<::std::_Simple_types<::AttributeInstance>>>,
113 ::std::pair<uint const&, ::AttributeInstance&>>
114 end();
115
116 MCFOLD ::std::vector<::AttributeInstanceHandle> const& getDirtyAttributes() const;
117
118 MCAPI ::AttributeInstanceConstRef getInstance(::Attribute const& attribute) const;
119
120 MCAPI ::AttributeInstanceConstRef getInstance(uint idValue) const;
121
122 MCAPI ::AttributeInstanceRef getMutableInstance(::Attribute const& attribute);
123
124 MCAPI ::AttributeInstanceRef getMutableInstance(::HashedString const& name);
125
126 MCAPI ::MutableAttributeWithContext getMutableInstanceWithContext(::Attribute const& attribute);
127
128 MCAPI ::std::vector<::AttributeInstanceHandle> getSyncableAttributes() const;
129
130 MCAPI void onAttributeModified(::AttributeInstanceConstRef attributeInstance);
131
132 MCAPI ::AttributeInstanceRef registerAttribute(::Attribute const& baseAttribute);
133
134 MCAPI void updateOrCreateAttribute(::AttributeData const& attributeData);
135 // NOLINTEND
136
137public:
138 // static functions
139 // NOLINTBEGIN
140 MCAPI static void updateAttribute(
141 ::AttributeData const& attributeData,
142 ::AttributeInstanceRef attributeRef,
144 );
145 // NOLINTEND
146
147public:
148 // static variables
149 // NOLINTBEGIN
150 MCAPI static ::std::string const& DIFF_ATTRIBUTES_SIZE();
151
152 MCAPI static ::std::string const& DIFF_DIRTY_ATTRIBUTES();
153
154 MCAPI static ::std::string const& DIFF_DIRTY_ATTRIBUTES_SIZE();
155
156 MCAPI static ::std::string const& DIFF_NO_ATTRIBUTES();
157
158 MCAPI static ::AttributeInstance& mInvalidInstance();
159 // NOLINTEND
160
161public:
162 // constructor thunks
163 // NOLINTBEGIN
164 MCAPI void* $ctor(::BaseAttributeMap const&);
165 // NOLINTEND
166};
Definition AttributeInstanceConstRef.h:13
Definition AttributeInstanceHandle.h:11
Definition AttributeInstanceRef.h:13
Definition AttributeInstance.h:17
Definition Attribute.h:9
Definition HashedString.h:5
Definition flat_map.h:15
Definition AttributeData.h:17
Definition AttributeModificationContext.h:10
Definition MutableAttributeWithContext.h:15
Definition context.h:5