24 #ifndef __DOTS_INTERNAL_BLOB_LAYOUT_H__
25 #define __DOTS_INTERNAL_BLOB_LAYOUT_H__
27 #include <Safir/Dob/Typesystem/ToolSupport/Internal/BlobLayoutImpl.h>
56 void CreateBlob(
const DotsC_TypeId typeId,
char * & blob)
const
58 m_impl.CreateBlob(typeId, blob);
64 m_impl.DeleteBlob(blob);
71 const DotsC_Int32 blobSize,
72 const DotsC_TypeId typeId,
73 char * & beginningOfUnused)
const
75 m_impl.FormatBlob(blob, blobSize, typeId, beginningOfUnused);
78 DotsC_Int32
GetSize(
const char *
const blob)
const
80 return m_impl.GetSize(blob);
83 DotsC_TypeId
GetTypeId(
const char *
const blob)
const
85 return m_impl.GetTypeId(blob);
90 return m_impl.IsAnythingChanged(blob);
93 void SetChanged(
char *
const blob,
const bool changed)
const
95 m_impl.SetChanged(blob, changed);
100 m_impl.ResetChanged(blob);
105 m_impl.MergeChanges(val, blob);
110 return m_impl.SetChangedSinceLastRead(lastRead, current);
117 const DotsC_MemberIndex member,
118 const DotsC_ArrayIndex index)
const
120 return m_impl.GetStatus(blob, member, index);
124 const DotsC_MemberIndex member,
125 const DotsC_ArrayIndex index,
128 return m_impl.template GetMember<bool>(blob, member, index, val);
132 const DotsC_MemberIndex member,
133 const DotsC_ArrayIndex index,
134 DotsC_EnumerationValue& val)
const
136 return m_impl.template GetMember<DotsC_EnumerationValue>(blob, member, index, val);
140 const DotsC_MemberIndex member,
141 const DotsC_ArrayIndex index,
142 DotsC_Int32& val)
const
144 return m_impl.template GetMember<DotsC_Int32>(blob, member, index, val);
148 const DotsC_MemberIndex member,
149 const DotsC_ArrayIndex index,
150 DotsC_Int64& val)
const
152 return m_impl.template GetMember<DotsC_Int64>(blob, member, index, val);
156 const DotsC_MemberIndex member,
157 const DotsC_ArrayIndex index,
158 DotsC_Float32& val)
const
160 return m_impl.template GetMember<DotsC_Float32>(blob, member, index, val);
164 const DotsC_MemberIndex member,
165 const DotsC_ArrayIndex index,
166 DotsC_Float64& val)
const
168 return m_impl.template GetMember<DotsC_Float64>(blob, member, index, val);
172 const DotsC_MemberIndex member,
173 const DotsC_ArrayIndex index,
174 DotsC_Int64 & hashVal,
175 const char * & strVal)
const
177 return m_impl.template GetMemberWithOptionalString<DotsC_Int64>(blob, member, index, hashVal, strVal);
181 const DotsC_MemberIndex member,
182 const DotsC_ArrayIndex index,
183 DotsC_EntityId & entityId,
184 const char * & strVal)
const
186 return m_impl.template GetMemberWithOptionalString<DotsC_EntityId>(blob, member, index, entityId, strVal);
190 const DotsC_MemberIndex member,
191 const DotsC_ArrayIndex index,
193 DotsC_Int32 & binarySize)
const
195 return m_impl.GetDynamicMember(blob, member, index, val, binarySize);
199 const DotsC_MemberIndex member,
200 const DotsC_ArrayIndex index,
202 DotsC_Int32& binarySize)
const
204 return m_impl.GetDynamicMember(blob, member, index, val, binarySize);
212 const bool isChanged,
214 const DotsC_MemberIndex member,
215 const DotsC_ArrayIndex index)
const
217 m_impl.SetStatus(isNull, isChanged, blob, member, index);
222 const DotsC_MemberIndex member,
223 const DotsC_ArrayIndex index)
const
225 m_impl.template SetMember<bool>(val, blob, member, index);
230 const DotsC_MemberIndex member,
231 const DotsC_ArrayIndex index)
const
233 m_impl.template SetMember<DotsC_EnumerationValue>(val, blob, member, index);
238 const DotsC_MemberIndex member,
239 const DotsC_ArrayIndex index)
const
241 m_impl.template SetMember<DotsC_Int32>(val, blob, member, index);
246 const DotsC_MemberIndex member,
247 const DotsC_ArrayIndex index)
const
249 m_impl.template SetMember<DotsC_Int64>(val, blob, member, index);
254 const DotsC_MemberIndex member,
255 const DotsC_ArrayIndex index)
const
257 m_impl.template SetMember<DotsC_Float32>(val, blob, member, index);
262 const DotsC_MemberIndex member,
263 const DotsC_ArrayIndex index)
const
265 m_impl.template SetMember<DotsC_Float64>(val, blob, member, index);
269 const char *
const strVal,
271 const DotsC_MemberIndex member,
272 const DotsC_ArrayIndex index)
const
274 m_impl.SetMemberWithOptionalString(hashVal, strVal, blob, member, index);
278 const char *
const strVal,
280 const DotsC_MemberIndex member,
281 const DotsC_ArrayIndex index)
const
283 m_impl.SetMemberWithOptionalString(entityId, strVal, blob, member, index);
287 const DotsC_Int32 binarySize,
289 const DotsC_MemberIndex member,
290 const DotsC_ArrayIndex index)
const
292 m_impl.SetDynamicMember(val, binarySize, blob, member, index);
302 const DotsC_Int32 size,
303 const DotsC_TypeId typeId,
304 const DotsC_MemberIndex member,
305 const DotsC_ArrayIndex index,
306 const bool isChanged,
307 char * & beginningOfUnused)
const
309 m_impl.CreateObjectMember(insideBlob, size, typeId, member, index, isChanged, beginningOfUnused);
315 const DotsC_Int32 stringLength,
316 const DotsC_MemberIndex member,
317 const DotsC_ArrayIndex index,
318 const bool isChanged,
319 char * & beginningOfUnused)
const
321 m_impl.CreateStringMember(insideBlob, stringLength, member, index, isChanged, beginningOfUnused);
327 const DotsC_Int32 binarySize,
328 const DotsC_MemberIndex member,
329 const DotsC_ArrayIndex index,
330 const bool isChanged,
331 char * & beginningOfUnused)
const
333 m_impl.CreateBinaryMember(insideBlob, binarySize, member, index, isChanged, beginningOfUnused);
342 const char *
const strVal,
343 const DotsC_Int32 stringLength,
344 const DotsC_MemberIndex member,
345 const DotsC_ArrayIndex index,
346 const bool isChanged,
347 char * & beginningOfUnused)
const
349 m_impl.template CreateAndSetMemberWithOptionalString<T>(blob, hashVal, strVal, stringLength, member, index, isChanged, beginningOfUnused);
353 const Internal::BlobLayoutImpl<RepT> m_impl;