Zen API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kSerializer.h
Go to the documentation of this file.
1 
10 #ifndef K_API_SERIALIZER_H
11 #define K_API_SERIALIZER_H
12 
13 #include <kApi/kApiDef.h>
14 #include <kApi/Data/kArrayList.h>
15 
16 #include <kApi/Io/kSerializer.x.h>
17 
139 //typedef kObject kSerializer; --forward-declared in kApiDef.x.h
140 
155 kFx(kStatus) kSerializer_Construct(kSerializer* serializer, kStream stream, kType serializerType, kAlloc allocator);
156 
167 kFx(kStatus) kSerializer_LoadObject(kObject* object, kType serializerType, const kChar* filePath, kAlloc readAlloc);
168 
178 kFx(kStatus) kSerializer_SaveObject(kObject object, kType serializerType, const kChar* filePath);
179 
193 kFx(kStatus) kSerializer_SetVersion(kSerializer serializer, kAssembly assembly, kVersion version);
194 
207 {
208  return xkSerializer_VTable(serializer)->VSetSizeEncoding(serializer, byteCount);
209 }
210 
223 kFx(kStatus) kSerializer_SetBufferSize(kSerializer serializer, kSize size);
224 
233 {
234  kObj(kSerializer, serializer);
235 
236  return obj->bufferSize;
237 }
238 
252 {
253  kObj(kSerializer, serializer);
254 
255  obj->maxBufferedWriteSize = size;
256 
257  return kOK;
258 }
259 
268 {
269  kObj(kSerializer, serializer);
270 
271  return obj->maxBufferedWriteSize;
272 }
273 
285 {
286  kObj(kSerializer, serializer);
287 
288  obj->objectFlushEnabled = enable;
289 
290  return kOK;
291 }
292 
301 {
302  kObj(kSerializer, serializer);
303 
304  return obj->objectFlushEnabled;
305 }
306 
315 {
316  kObj(kSerializer, serializer);
317 
318  return obj->sizeEncoding;
319 }
320 
333 {
334  kObj(kSerializer, serializer);
335 
336  obj->endianness = endianness;
337  obj->swap = kEndianness_ShouldReverse(obj->endianness);
338 
339  return kOK;
340 }
341 
350 {
351  kObj(kSerializer, serializer);
352 
353  return obj->endianness;
354 }
355 
365 {
366  return xkSerializer_VTable(serializer)->VWriteObject(serializer, object);
367 }
378 {
379  return xkSerializer_VTable(serializer)->VReadObject(serializer, object, allocator);
380 }
381 
390 kFx(kStatus) kSerializer_WriteText(kSerializer serializer, const kChar* data);
391 
401 kFx(kStatus) kSerializer_ReadText(kSerializer serializer, kChar* data, kSize capacity);
402 
412 {
413  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
414 }
415 
425 kInlineFx(kStatus) kSerializer_WriteByteArray(kSerializer serializer, const void* data, kSize count)
426 {
427  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
428 }
429 
439 {
440  kObj(kSerializer, serializer);
441 
442  return kStream_Read(obj->readStream, data, 1);
443 }
444 
455 {
456  kObj(kSerializer, serializer);
457 
458  return kStream_Read(obj->readStream, data, count);
459 }
460 
470 {
471  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
472 }
473 
484 {
485  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
486 }
487 
497 {
498  kObj(kSerializer, serializer);
499 
500  return kStream_Read(obj->readStream, data, 1);
501 }
502 
513 {
514  kObj(kSerializer, serializer);
515 
516  return kStream_Read(obj->readStream, data, count);
517 }
518 
528 {
529  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
530 }
531 
542 {
543  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
544 }
545 
555 {
556  kObj(kSerializer, serializer);
557 
558  return kStream_Read(obj->readStream, data, 1);
559 }
560 
571 {
572  kObj(kSerializer, serializer);
573 
574  return kStream_Read(obj->readStream, data, count);
575 }
585 {
586  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
587 }
588 
599 {
600  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
601 }
602 
612 {
613  kObj(kSerializer, serializer);
614 
615  return kStream_Read(obj->readStream, data, 1);
616 }
617 
628 {
629  kObj(kSerializer, serializer);
630 
631  return kStream_Read(obj->readStream, data, count);
632 }
633 
643 {
644  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_16);
645 }
656 {
657  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
658 }
659 
669 {
670  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_16);
671 }
672 
683 {
684  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
685 }
686 
696 {
697  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_16);
698 }
699 
710 {
711  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
712 }
713 
723 {
724  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_16);
725 }
726 
737 {
738  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
739 }
740 
750 {
751  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
752 }
753 
764 {
765  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
766 }
776 {
777  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
778 }
779 
790 {
791  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
792 }
793 
803 {
804  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
805 }
806 
817 {
818  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
819 }
820 
830 {
831  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
832 }
833 
844 {
845  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
846 }
847 
857 {
858  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
859 }
860 
871 {
872  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
873 }
883 {
884  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
885 }
896 {
897  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
898 }
899 
909 {
910  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
911 }
922 {
923  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
924 }
934 {
935  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
936 }
947 {
948  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
949 }
950 
960 {
961  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
962 }
973 {
974  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
975 }
985 {
986  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
987 }
998 {
999  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
1000 }
1010 {
1011  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
1012 }
1023 {
1024  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
1025 }
1026 
1036 {
1037  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
1038 }
1039 
1050 {
1051  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
1052 }
1053 
1066 {
1067  return xkSerializer_WriteSizePrimitive(serializer, data);
1068 }
1069 
1082 kFx(kStatus) kSerializer_WriteSizeArray(kSerializer serializer, const kSize* data, kSize count);
1083 
1096 {
1097  return xkSerializer_ReadSizePrimitive(serializer, data);
1098 }
1099 
1112 kFx(kStatus) kSerializer_ReadSizeArray(kSerializer serializer, kSize* data, kSize count);
1113 
1126 {
1127  return xkSerializer_WriteSSizePrimitive(serializer, data);
1128 }
1129 
1142 kFx(kStatus) kSerializer_WriteSSizeArray(kSerializer serializer, const kSSize* data, kSize count);
1143 
1156 {
1157  return xkSerializer_ReadSSizePrimitive(serializer, data);
1158 }
1159 
1172 kFx(kStatus) kSerializer_ReadSSizeArray(kSerializer serializer, kSSize* data, kSize count);
1173 
1188 {
1189  return (kSerializer_Endianness(serializer) == kEndianness_Host()) && kType_IsPacked(type);
1190 }
1191 
1201 {
1202  return xkSerializer_VTable(serializer)->VCanWriteType(serializer, type);
1203 }
1204 
1215 {
1216  return xkSerializer_VTable(serializer)->VWriteType(serializer, type, version);
1217 }
1218 
1219 
1230 {
1231  return xkSerializer_VTable(serializer)->VReadType(serializer, type, version);
1232 }
1233 
1245 kFx(kStatus) kSerializer_WriteItems(kSerializer serializer, kType type, kTypeVersion version, const void* items, kSize count);
1246 
1261 #define kSerializer_WriteItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count) \
1262  xkSerializer_WriteItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count, sizeof(*(TPtr_items)))
1263 
1275 kFx(kStatus) kSerializer_ReadItems(kSerializer serializer, kType type, kTypeVersion version, void* items, kSize count);
1276 
1291 #define kSerializer_ReadItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count) \
1292  xkSerializer_ReadItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count, sizeof(*(TPtr_items)))
1293 
1314 kFx(kStatus) kSerializer_BeginWrite(kSerializer serializer, kType sizeType, kBool includeSize);
1315 
1323 kFx(kStatus) kSerializer_EndWrite(kSerializer serializer);
1324 
1334 {
1335  if (offset == 0)
1336  {
1337  return kOK;
1338  }
1339 
1340  return xkSerializer_AdvanceWriteImpl(serializer, offset);
1341 }
1342 
1362 kFx(kStatus) kSerializer_BeginRead(kSerializer serializer, kType sizeType, kBool includeSize);
1363 
1371 kFx(kStatus) kSerializer_EndRead(kSerializer serializer);
1372 
1381 {
1382  kObj(kSerializer, serializer);
1383 
1384  kAssert(kArrayList_Count(obj->readSections) > 0);
1385 
1386  return kStream_BytesRead(obj->readStream) >= kPointer_ReadAs(kArrayList_Last(obj->readSections), k64u);
1387 }
1388 
1397 {
1398  kObj(kSerializer, serializer);
1399 
1400  kAssert(kArrayList_Count(obj->readSections) > 0);
1401 
1402  return kPointer_ReadAs(kArrayList_Last(obj->readSections), k64u) - kStream_BytesRead(obj->readStream);
1403 }
1404 
1414 {
1415  if (offset == 0)
1416  {
1417  return kOK;
1418  }
1419 
1420  return xkSerializer_AdvanceReadImpl(serializer, offset);
1421 }
1422 
1436 {
1437  return xkSerializer_FlushEx(serializer, kTRUE);
1438 }
1439 
1452 {
1453  return xkSerializer_VTable(serializer)->VReset(serializer);
1454 }
1455 
1464 {
1465  kObj(kSerializer, serializer);
1466 
1467  return obj->stream;
1468 }
1469 
1470 #endif
kStatus kSerializer_Write16s(kSerializer serializer, k16s data)
Writes a k16s value.
Definition: kSerializer.h:695
kStatus kSerializer_ReadSizeArray(kSerializer serializer, kSize *data, kSize count)
Reads a kSize array.
kStatus kSerializer_ReadCharArray(kSerializer serializer, kChar *data, kSize count)
Reads a kChar array.
Definition: kSerializer.h:512
Represents a 32-bit unsigned integer.
kStatus kSerializer_Write32sArray(kSerializer serializer, const k32s *data, kSize count)
Writes a k32s array.
Definition: kSerializer.h:816
kStatus kSerializer_EndWrite(kSerializer serializer)
Ends writing a measured data section.
kStatus kSerializer_Read64u(kSerializer serializer, k64u *data)
Reads a k64u value.
Definition: kSerializer.h:882
kStatus kSerializer_Write8u(kSerializer serializer, k8u data)
Writes a k8u value.
Definition: kSerializer.h:527
kStatus kSerializer_ReadChar(kSerializer serializer, kChar *data)
Reads a kChar value.
Definition: kSerializer.h:496
kStatus kSerializer_Read32f(kSerializer serializer, k32f *data)
Reads a k32f value.
Definition: kSerializer.h:984
kStatus kSerializer_Write16sArray(kSerializer serializer, const k16s *data, kSize count)
Writes a k16s array.
Definition: kSerializer.h:709
k64u kStream_BytesRead(kStream stream)
Reports the number of bytes read from this stream.
Definition: kStream.h:207
kStatus kSerializer_Read8u(kSerializer serializer, k8u *data)
Reads a k8u value.
Definition: kSerializer.h:554
Represents a 64-bit unsigned integer.
kStatus kSerializer_Read8s(kSerializer serializer, k8s *data)
Reads a k8s value.
Definition: kSerializer.h:611
kStatus kSerializer_AdvanceWrite(kSerializer serializer, kSize offset)
Writes a number of (zero) bytes.
Definition: kSerializer.h:1333
kStatus kSerializer_WriteCharArray(kSerializer serializer, const kChar *data, kSize count)
Writes a kChar array.
Definition: kSerializer.h:483
kStatus kSerializer_Read16s(kSerializer serializer, k16s *data)
Reads a k16s value.
Definition: kSerializer.h:722
kSize kSerializer_BufferSize(kSerializer serializer)
Reports the chunk size used for internal buffers.
Definition: kSerializer.h:232
kStatus kSerializer_Write8uArray(kSerializer serializer, const k8u *data, kSize count)
Writes a k8u array.
Definition: kSerializer.h:541
kStatus kSerializer_EndRead(kSerializer serializer)
Ends reading a measured data section.
kStatus kSerializer_Write32uArray(kSerializer serializer, const k32u *data, kSize count)
Writes a k32u array.
Definition: kSerializer.h:763
Represents a library of types.
kStatus kSerializer_Read64f(kSerializer serializer, k64f *data)
Reads a k64f value.
Definition: kSerializer.h:1035
kStatus kSerializer_SetVersion(kSerializer serializer, kAssembly assembly, kVersion version)
Sets the version to use when serializing types.
kStatus kSerializer_Write32f(kSerializer serializer, k32f data)
Writes a k32f value.
Definition: kSerializer.h:959
kStatus kSerializer_ReadByteArray(kSerializer serializer, void *data, kSize count)
Reads a kByte array.
Definition: kSerializer.h:454
kStatus kSerializer_Read16u(kSerializer serializer, k16u *data)
Reads a k16u value.
Definition: kSerializer.h:668
kStatus kSerializer_WriteType(kSerializer serializer, kType type, kTypeVersion *version)
Writes a type code.
Definition: kSerializer.h:1214
Represents a 16-bit unsigned integer.
kStatus kSerializer_Write16u(kSerializer serializer, k16u data)
Writes a k16u value.
Definition: kSerializer.h:642
Declares the kArrayList class.
Represents an unsigned integer that can store a pointer address.
Abstract base class for memory allocator types.
kBool kSerializer_IsMemoryCompatible(kSerializer serializer, kType type)
Determines whether a value type is memory-compatible with the serializer.
Definition: kSerializer.h:1187
kStatus kSerializer_Write64f(kSerializer serializer, k64f data)
Writes a k64f value.
Definition: kSerializer.h:1009
kStream kSerializer_Stream(kSerializer serializer)
Gets the underlying stream.
Definition: kSerializer.h:1463
kBool kType_IsPacked(kType type)
Reports whether the fields of a value type are tightly packed (free from structure padding)...
Definition: kType.h:211
kStatus kSerializer_Read64uArray(kSerializer serializer, k64u *data, kSize count)
Reads a k64u array.
Definition: kSerializer.h:895
kStatus kSerializer_Write64u(kSerializer serializer, k64u data)
Writes a k64u value.
Definition: kSerializer.h:856
Represents an 8-bit unsigned integer.
void * kArrayList_Last(kArrayList list)
Returns a pointer to the last item in the list.
Definition: kArrayList.h:692
kStatus kSerializer_EnableObjectFlush(kDat6Serializer serializer, kBool enable)
Enables or disables automatic flush operations after each serialized object.
Definition: kSerializer.h:284
#define kInlineFx(TYPE)
Inline method declaration helper.
Definition: kApiDef.h:29
kStatus kSerializer_ReadObject(kSerializer serializer, kObject *object, kAlloc allocator)
Reads an object from the underlying stream.
Definition: kSerializer.h:377
kStatus kSerializer_SaveObject(kObject object, kType serializerType, const kChar *filePath)
Saves an object to file using the specified serializer type.
Represents a single unit (byte) in a UTF-8 character.
kStatus kSerializer_Write64sArray(kSerializer serializer, const k64s *data, kSize count)
Writes a k64s array.
Definition: kSerializer.h:921
kStatus kSerializer_SetEndianness(kSerializer serializer, kEndianness endianness)
Explicitly sets the endianness (byte ordering) of encoded/decoded values.
Definition: kSerializer.h:332
kStatus kSerializer_Write64fArray(kSerializer serializer, const k64f *data, kSize count)
Writes a k64f array.
Definition: kSerializer.h:1022
kStatus kSerializer_WriteSize(kSerializer serializer, kSize data)
Writes a kSize value.
Definition: kSerializer.h:1065
Represents a byte on the current platform.
kStatus kSerializer_WriteByte(kSerializer serializer, kByte data)
Writes a kByte value.
Definition: kSerializer.h:411
k32u kSerializer_SizeEncoding(kSerializer serializer)
Reports the number of bytes used to encode/decode kSize and kSSize values.
Definition: kSerializer.h:314
kStatus kSerializer_WriteSSizeArray(kSerializer serializer, const kSSize *data, kSize count)
Writes a kSSize array.
kStatus kSerializer_AdvanceRead(kSerializer serializer, kSize offset)
Reads and discards a specified number of bytes.
Definition: kSerializer.h:1413
Represents a signed integer that can store a pointer address.
kStatus kSerializer_Read32u(kSerializer serializer, k32u *data)
Reads a k32u value.
Definition: kSerializer.h:775
kStatus kSerializer_WriteItems(kSerializer serializer, kType type, kTypeVersion version, const void *items, kSize count)
Writes an array of values or objects.
kStatus kSerializer_Write8s(kSerializer serializer, k8s data)
Writes a k8s value.
Definition: kSerializer.h:584
kStatus kSerializer_Read8sArray(kSerializer serializer, k8s *data, kSize count)
Reads a k8s array.
Definition: kSerializer.h:627
kStatus kSerializer_ReadByte(kSerializer serializer, kByte *data)
Reads a kByte value.
Definition: kSerializer.h:438
#define kTRUE
Boolean true.
Definition: kApiDef.h:177
Base class for serialization/deserialization classes.
Serializes/deserializes objects using kDat6 format.
kStatus kSerializer_Reset(kSerializer serializer)
Discards any streaming context accumulated by the serializer.
Definition: kSerializer.h:1451
kStatus kSerializer_WriteChar(kSerializer serializer, kChar data)
Writes a kChar value.
Definition: kSerializer.h:469
kStatus kSerializer_Read32uArray(kSerializer serializer, k32u *data, kSize count)
Reads a k32u array.
Definition: kSerializer.h:789
kStatus kSerializer_WriteByteArray(kSerializer serializer, const void *data, kSize count)
Writes a kByte array.
Definition: kSerializer.h:425
kBool kSerializer_CanWriteType(kSerializer serializer, kType type)
Determines whether this serializer can write the specified object type.
Definition: kSerializer.h:1200
k64u kSerializer_ReadBytesLeft(kSerializer serializer)
Gets the number of bytes left on the current measured read section.
Definition: kSerializer.h:1396
kStatus kSerializer_SetMaxBufferedWriteSize(kSerializer serializer, kSize size)
Sets the upper size threshold for write operations that can be buffered.
Definition: kSerializer.h:251
#define kObj(TypeName_T, T_object)
Declares a local "obj" (this-pointer) variable and initializes it from a type-checked object handle...
Definition: kApiDef.h:3450
kStatus kSerializer_Read32s(kSerializer serializer, k32s *data)
Reads a k32s value.
Definition: kSerializer.h:829
kStatus kSerializer_Write32u(kSerializer serializer, k32u data)
Writes a k32u value.
Definition: kSerializer.h:749
kSize kSerializer_MaxBufferedWriteSize(kSerializer serializer)
Reports the upper size threshold for write operations that can be buffered.
Definition: kSerializer.h:267
kStatus kSerializer_SetBufferSize(kSerializer serializer, kSize size)
Sets the chunk size used for internal buffers.
kStatus kSerializer_BeginWrite(kSerializer serializer, kType sizeType, kBool includeSize)
Begins writing a measured section of data, using an 8, 16, 32, or 64-bit integer to record the size...
kStatus kSerializer_Read64sArray(kSerializer serializer, k64s *data, kSize count)
Reads a k64s array.
Definition: kSerializer.h:946
kStatus kSerializer_Write32s(kSerializer serializer, k32s data)
Writes a k32s value.
Definition: kSerializer.h:802
kPointer kTypeVersion
Represents an opaque reference to type version information (used in object serialization).
kStatus kSerializer_BeginRead(kSerializer serializer, kType sizeType, kBool includeSize)
Begins reading a measured data section.
kStatus kSerializer_Write64s(kSerializer serializer, k64s data)
Writes a k64s value.
Definition: kSerializer.h:908
Core Zen type declarations.
kSize kArrayList_Count(kArrayList list)
Returns the current count of items in the list.
Definition: kArrayList.h:638
kStatus kSerializer_Read64fArray(kSerializer serializer, k64f *data, kSize count)
Reads a k64f array.
Definition: kSerializer.h:1049
kStatus kSerializer_ReadItems(kSerializer serializer, kType type, kTypeVersion version, void *items, kSize count)
Reads an array of values or objects.
Represents an I/O stream.
kStatus kSerializer_ReadSize(kSerializer serializer, kSize *data)
Reads a kSize value.
Definition: kSerializer.h:1095
Represents a 32-bit signed integer.
kStatus kSerializer_Write16uArray(kSerializer serializer, const k16u *data, kSize count)
Writes a k16u array.
Definition: kSerializer.h:655
kStatus kSerializer_LoadObject(kObject *object, kType serializerType, const kChar *filePath, kAlloc readAlloc)
Loads an object from file using the specified serializer type.
kStatus kSerializer_Construct(kSerializer *serializer, kStream stream, kType serializerType, kAlloc allocator)
Constructs a serializer object using the specified serialization format.
kStatus kSerializer_Write8sArray(kSerializer serializer, const k8s *data, kSize count)
Writes a k8s array.
Definition: kSerializer.h:598
kStatus kSerializer_Read64s(kSerializer serializer, k64s *data)
Reads a k64s value.
Definition: kSerializer.h:933
kStatus kSerializer_Read16sArray(kSerializer serializer, k16s *data, kSize count)
Reads a k16s array.
Definition: kSerializer.h:736
kEndianness kEndianness_Host()
Reports the endianness of the current platform.
Definition: kApiDef.h:941
kBool kEndianness_ShouldReverse(kEndianness endianness)
Reports whether byte ordering must be reversed to be consistent with the current platform.
Definition: kApiDef.h:952
kStatus kSerializer_WriteSizeArray(kSerializer serializer, const kSize *data, kSize count)
Writes a kSize array.
Represents a 64-bit signed integer.
kStatus kSerializer_ReadText(kSerializer serializer, kChar *data, kSize capacity)
Reads a null-terminated kChar array.
kStatus kSerializer_WriteText(kSerializer serializer, const kChar *data)
Writes a null-terminated kChar array.
Represents an 8-bit signed integer.
Represents the byte-ordering of primitive data types.
kStatus kSerializer_Read32sArray(kSerializer serializer, k32s *data, kSize count)
Reads a k32s array.
Definition: kSerializer.h:843
Represents metadata about a type (class, interface, or value).
kStatus kSerializer_SetSizeEncoding(kSerializer serializer, k32u byteCount)
Explicitly sets the number of bytes used to encode/decode kSize and kSSize values.
Definition: kSerializer.h:206
kStatus kSerializer_WriteObject(kSerializer serializer, kObject object)
Writes an object to the underlying stream.
Definition: kSerializer.h:364
kBool kSerializer_ReadCompleted(kSerializer serializer)
Determines whether the current measured read section has more bytes.
Definition: kSerializer.h:1380
kStatus kSerializer_Write32fArray(kSerializer serializer, const k32f *data, kSize count)
Writes a k32f array.
Definition: kSerializer.h:972
#define kAssert(EXPRESSION)
Aborts execution if EXPRESSION is kFALSE.
Definition: kApiDef.h:779
Represents a 16-bit signed integer.
Represents a 32-bit floating-point number.
Root of all Zen classes.
Represents a version number.
#define kOK
Operation successful.
Definition: kApiDef.h:543
kStatus kSerializer_Read16uArray(kSerializer serializer, k16u *data, kSize count)
Reads a k16u array.
Definition: kSerializer.h:682
Represents an error code.
kStatus kSerializer_ReadSSize(kSerializer serializer, kSSize *data)
Reads a kSSize value.
Definition: kSerializer.h:1155
kStatus kSerializer_ReadType(kSerializer serializer, kType *type, kTypeVersion *version)
Reads a type code.
Definition: kSerializer.h:1229
kStatus kSerializer_Read8uArray(kSerializer serializer, k8u *data, kSize count)
Reads a k8u array.
Definition: kSerializer.h:570
#define kPointer_ReadAs(POINTER, TYPE)
Deferences a pointer, assuming the specified type, and returns the resulting value.
Definition: kApiDef.h:362
kStatus kSerializer_Write64uArray(kSerializer serializer, const k64u *data, kSize count)
Writes a k64u array.
Definition: kSerializer.h:870
kStatus kSerializer_ReadSSizeArray(kSerializer serializer, kSSize *data, kSize count)
Reads a kSSize array.
Represents a 64-bit floating-point number.
kBool kSerializer_ObjectFlushEnabled(kDat6Serializer serializer)
Reports whether the serializer will automatically flush after each object.
Definition: kSerializer.h:300
kStatus kSerializer_Read32fArray(kSerializer serializer, k32f *data, kSize count)
Reads a k32f array.
Definition: kSerializer.h:997
Represents a boolean value.
kStatus kSerializer_WriteSSize(kSerializer serializer, kSSize data)
Writes a kSSize value.
Definition: kSerializer.h:1125
kEndianness kSerializer_Endianness(kSerializer serializer)
Reports the (byte ordering) of encoded/decoded values.
Definition: kSerializer.h:349
kStatus kStream_Read(kStream stream, void *buffer, kSize size)
Reads the specified number of bytes from the stream.
Definition: kStream.h:37
kStatus kSerializer_Flush(kSerializer serializer)
Flushes the serializer write buffer to the underlying stream.
Definition: kSerializer.h:1435