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  kObj(kSerializer, serializer);
209 
210  kCheckArgs((byteCount == 4) || (byteCount == 8));
211 
212  obj->sizeEncoding = byteCount;
213 
214  return kOK;
215 }
216 
225 {
226  kObj(kSerializer, serializer);
227 
228  return obj->sizeEncoding;
229 }
230 
243 {
244  kObj(kSerializer, serializer);
245 
246  obj->endianness = endianness;
247  obj->swap = kEndianness_ShouldReverse(obj->endianness);
248 
249  return kOK;
250 }
251 
260 {
261  kObj(kSerializer, serializer);
262 
263  return obj->endianness;
264 }
265 
275 {
276  return xkSerializer_VTable(serializer)->VWriteObject(serializer, object);
277 }
288 {
289  return xkSerializer_VTable(serializer)->VReadObject(serializer, object, allocator);
290 }
291 
300 kFx(kStatus) kSerializer_WriteText(kSerializer serializer, const kChar* data);
301 
311 kFx(kStatus) kSerializer_ReadText(kSerializer serializer, kChar* data, kSize capacity);
312 
322 {
323  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
324 }
325 
335 kInlineFx(kStatus) kSerializer_WriteByteArray(kSerializer serializer, const void* data, kSize count)
336 {
337  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
338 }
339 
349 {
350  kObj(kSerializer, serializer);
351 
352  return kStream_Read(obj->readStream, data, 1);
353 }
354 
365 {
366  kObj(kSerializer, serializer);
367 
368  return kStream_Read(obj->readStream, data, count);
369 }
370 
380 {
381  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
382 }
383 
394 {
395  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
396 }
397 
407 {
408  kObj(kSerializer, serializer);
409 
410  return kStream_Read(obj->readStream, data, 1);
411 }
412 
423 {
424  kObj(kSerializer, serializer);
425 
426  return kStream_Read(obj->readStream, data, count);
427 }
428 
438 {
439  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
440 }
441 
452 {
453  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
454 }
455 
465 {
466  kObj(kSerializer, serializer);
467 
468  return kStream_Read(obj->readStream, data, 1);
469 }
470 
481 {
482  kObj(kSerializer, serializer);
483 
484  return kStream_Read(obj->readStream, data, count);
485 }
495 {
496  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
497 }
498 
509 {
510  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
511 }
512 
522 {
523  kObj(kSerializer, serializer);
524 
525  return kStream_Read(obj->readStream, data, 1);
526 }
527 
538 {
539  kObj(kSerializer, serializer);
540 
541  return kStream_Read(obj->readStream, data, count);
542 }
543 
553 {
554  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_16);
555 }
566 {
567  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
568 }
569 
579 {
580  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_16);
581 }
582 
593 {
594  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
595 }
596 
606 {
607  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_16);
608 }
609 
620 {
621  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
622 }
623 
633 {
634  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_16);
635 }
636 
647 {
648  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
649 }
650 
660 {
661  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
662 }
663 
674 {
675  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
676 }
686 {
687  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
688 }
689 
700 {
701  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
702 }
703 
713 {
714  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
715 }
716 
727 {
728  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
729 }
730 
740 {
741  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
742 }
743 
754 {
755  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
756 }
757 
767 {
768  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
769 }
770 
781 {
782  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
783 }
793 {
794  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
795 }
806 {
807  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
808 }
809 
819 {
820  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
821 }
832 {
833  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
834 }
844 {
845  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
846 }
857 {
858  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
859 }
860 
870 {
871  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
872 }
883 {
884  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
885 }
895 {
896  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
897 }
908 {
909  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
910 }
920 {
921  return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
922 }
933 {
934  return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
935 }
936 
946 {
947  return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
948 }
949 
960 {
961  return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
962 }
963 
976 {
977  return xkSerializer_WriteSizePrimitive(serializer, data);
978 }
979 
992 kFx(kStatus) kSerializer_WriteSizeArray(kSerializer serializer, const kSize* data, kSize count);
993 
1006 {
1007  return xkSerializer_ReadSizePrimitive(serializer, data);
1008 }
1009 
1022 kFx(kStatus) kSerializer_ReadSizeArray(kSerializer serializer, kSize* data, kSize count);
1023 
1036 {
1037  return xkSerializer_WriteSSizePrimitive(serializer, data);
1038 }
1039 
1052 kFx(kStatus) kSerializer_WriteSSizeArray(kSerializer serializer, const kSSize* data, kSize count);
1053 
1066 {
1067  return xkSerializer_ReadSSizePrimitive(serializer, data);
1068 }
1069 
1082 kFx(kStatus) kSerializer_ReadSSizeArray(kSerializer serializer, kSSize* data, kSize count);
1083 
1098 {
1099  return (kSerializer_Endianness(serializer) == kEndianness_Host()) && kType_IsPacked(type);
1100 }
1101 
1111 {
1112  return xkSerializer_VTable(serializer)->VCanWriteType(serializer, type);
1113 }
1114 
1125 {
1126  return xkSerializer_VTable(serializer)->VWriteType(serializer, type, version);
1127 }
1128 
1129 
1140 {
1141  return xkSerializer_VTable(serializer)->VReadType(serializer, type, version);
1142 }
1143 
1155 kFx(kStatus) kSerializer_WriteItems(kSerializer serializer, kType type, kTypeVersion version, const void* items, kSize count);
1156 
1171 #define kSerializer_WriteItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count) \
1172  xkSerializer_WriteItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count, sizeof(*TPtr_items))
1173 
1185 kFx(kStatus) kSerializer_ReadItems(kSerializer serializer, kType type, kTypeVersion version, void* items, kSize count);
1186 
1201 #define kSerializer_ReadItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count) \
1202  xkSerializer_ReadItemsT(kSerializer_serializer, kType_type, kTypeVersion_version, TPtr_items, kSize_count, sizeof(*TPtr_items))
1203 
1214 kFx(kStatus) kSerializer_BeginWrite(kSerializer serializer, kType sizeType, kBool includeSize);
1215 
1223 kFx(kStatus) kSerializer_EndWrite(kSerializer serializer);
1224 
1234 kFx(kStatus) kSerializer_BeginRead(kSerializer serializer, kType sizeType, kBool includeSize);
1235 
1243 kFx(kStatus) kSerializer_EndRead(kSerializer serializer);
1244 
1253 {
1254  kObj(kSerializer, serializer);
1255 
1256  kAssert(kArrayList_Count(obj->readSections) > 0);
1257 
1258  return kStream_BytesRead(obj->readStream) >= kPointer_ReadAs(kArrayList_Last(obj->readSections), k64u);
1259 }
1260 
1270 {
1271  if (offset == 0)
1272  {
1273  return kOK;
1274  }
1275 
1276  return xkSerializer_AdvanceReadImpl(serializer, offset);
1277 }
1278 
1292 {
1293  return xkSerializer_FlushEx(serializer, kTRUE);
1294 }
1295 
1304 {
1305  return xkSerializer_VTable(serializer)->VReset(serializer);
1306 }
1307 
1316 {
1317  kObj(kSerializer, serializer);
1318 
1319  return obj->stream;
1320 }
1321 
1322 #endif
kStatus kSerializer_Write16s(kSerializer serializer, k16s data)
Writes a k16s value.
Definition: kSerializer.h:605
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:422
Represents a 32-bit unsigned integer.
kStatus kSerializer_Write32sArray(kSerializer serializer, const k32s *data, kSize count)
Writes a k32s array.
Definition: kSerializer.h:726
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:792
kStatus kSerializer_Write8u(kSerializer serializer, k8u data)
Writes a k8u value.
Definition: kSerializer.h:437
kStatus kSerializer_ReadChar(kSerializer serializer, kChar *data)
Reads a kChar value.
Definition: kSerializer.h:406
kStatus kSerializer_Read32f(kSerializer serializer, k32f *data)
Reads a k32f value.
Definition: kSerializer.h:894
kStatus kSerializer_Write16sArray(kSerializer serializer, const k16s *data, kSize count)
Writes a k16s array.
Definition: kSerializer.h:619
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:464
Represents a 64-bit unsigned integer.
kStatus kSerializer_Read8s(kSerializer serializer, k8s *data)
Reads a k8s value.
Definition: kSerializer.h:521
kStatus kSerializer_WriteCharArray(kSerializer serializer, const kChar *data, kSize count)
Writes a kChar array.
Definition: kSerializer.h:393
kStatus kSerializer_Read16s(kSerializer serializer, k16s *data)
Reads a k16s value.
Definition: kSerializer.h:632
kStatus kSerializer_Write8uArray(kSerializer serializer, const k8u *data, kSize count)
Writes a k8u array.
Definition: kSerializer.h:451
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:673
Represents a library of types.
kStatus kSerializer_Read64f(kSerializer serializer, k64f *data)
Reads a k64f value.
Definition: kSerializer.h:945
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:869
kStatus kSerializer_ReadByteArray(kSerializer serializer, void *data, kSize count)
Reads a kByte array.
Definition: kSerializer.h:364
kStatus kSerializer_Read16u(kSerializer serializer, k16u *data)
Reads a k16u value.
Definition: kSerializer.h:578
kStatus kSerializer_WriteType(kSerializer serializer, kType type, kTypeVersion *version)
Writes a type code.
Definition: kSerializer.h:1124
Represents a 16-bit unsigned integer.
kStatus kSerializer_Write16u(kSerializer serializer, k16u data)
Writes a k16u value.
Definition: kSerializer.h:552
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:1097
kStatus kSerializer_Write64f(kSerializer serializer, k64f data)
Writes a k64f value.
Definition: kSerializer.h:919
kStream kSerializer_Stream(kSerializer serializer)
Gets the underlying stream.
Definition: kSerializer.h:1315
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:805
kStatus kSerializer_Write64u(kSerializer serializer, k64u data)
Writes a k64u value.
Definition: kSerializer.h:766
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
#define kInlineFx(TYPE)
Inline method declaration helper.
Definition: kApiDef.h:26
kStatus kSerializer_ReadObject(kSerializer serializer, kObject *object, kAlloc allocator)
Reads an object from the underlying stream.
Definition: kSerializer.h:287
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:831
kStatus kSerializer_SetEndianness(kSerializer serializer, kEndianness endianness)
Explicitly sets the endianness (byte ordering) of encoded/decoded values.
Definition: kSerializer.h:242
kStatus kSerializer_Write64fArray(kSerializer serializer, const k64f *data, kSize count)
Writes a k64f array.
Definition: kSerializer.h:932
kStatus kSerializer_WriteSize(kSerializer serializer, kSize data)
Writes a kSize value.
Definition: kSerializer.h:975
Represents a byte on the current platform.
kStatus kSerializer_WriteByte(kSerializer serializer, kByte data)
Writes a kByte value.
Definition: kSerializer.h:321
k32u kSerializer_SizeEncoding(kSerializer serializer)
Reports the number of bytes used to encode/decode kSize and kSSize values.
Definition: kSerializer.h:224
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:1269
Represents a signed integer that can store a pointer address.
kStatus kSerializer_Read32u(kSerializer serializer, k32u *data)
Reads a k32u value.
Definition: kSerializer.h:685
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:494
kStatus kSerializer_Read8sArray(kSerializer serializer, k8s *data, kSize count)
Reads a k8s array.
Definition: kSerializer.h:537
kStatus kSerializer_ReadByte(kSerializer serializer, kByte *data)
Reads a kByte value.
Definition: kSerializer.h:348
#define kTRUE
Boolean true.
Definition: kApiDef.h:354
Base class for serialization/deserialization classes.
kStatus kSerializer_Reset(kSerializer serializer)
Discards any streaming context accumulated by the serializer.
Definition: kSerializer.h:1303
kStatus kSerializer_WriteChar(kSerializer serializer, kChar data)
Writes a kChar value.
Definition: kSerializer.h:379
kStatus kSerializer_Read32uArray(kSerializer serializer, k32u *data, kSize count)
Reads a k32u array.
Definition: kSerializer.h:699
kStatus kSerializer_WriteByteArray(kSerializer serializer, const void *data, kSize count)
Writes a kByte array.
Definition: kSerializer.h:335
kBool kSerializer_CanWriteType(kSerializer serializer, kType type)
Determines whether this serializer can write the specified object type.
Definition: kSerializer.h:1110
#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:2921
kStatus kSerializer_Read32s(kSerializer serializer, k32s *data)
Reads a k32s value.
Definition: kSerializer.h:739
kStatus kSerializer_Write32u(kSerializer serializer, k32u data)
Writes a k32u value.
Definition: kSerializer.h:659
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:856
kStatus kSerializer_Write32s(kSerializer serializer, k32s data)
Writes a k32s value.
Definition: kSerializer.h:712
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:818
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:959
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:1005
Represents a 32-bit signed integer.
kStatus kSerializer_Write16uArray(kSerializer serializer, const k16u *data, kSize count)
Writes a k16u array.
Definition: kSerializer.h:565
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.
#define kCheckArgs(EXPRESSION)
Executes a return statement if the given expression is not kTRUE.
Definition: kApiDef.h:582
kStatus kSerializer_Write8sArray(kSerializer serializer, const k8s *data, kSize count)
Writes a k8s array.
Definition: kSerializer.h:508
kStatus kSerializer_Read64s(kSerializer serializer, k64s *data)
Reads a k64s value.
Definition: kSerializer.h:843
kStatus kSerializer_Read16sArray(kSerializer serializer, k16s *data, kSize count)
Reads a k16s array.
Definition: kSerializer.h:646
kEndianness kEndianness_Host()
Reports the endianness of the current platform.
Definition: kApiDef.h:921
kBool kEndianness_ShouldReverse(kEndianness endianness)
Reports whether byte ordering must be reversed to be consistent with the current platform.
Definition: kApiDef.h:932
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:753
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:274
kBool kSerializer_ReadCompleted(kSerializer serializer)
Determines whether the current measured read section has more bytes.
Definition: kSerializer.h:1252
kStatus kSerializer_Write32fArray(kSerializer serializer, const k32f *data, kSize count)
Writes a k32f array.
Definition: kSerializer.h:882
#define kAssert(EXPRESSION)
Aborts execution if EXPRESSION is kFALSE.
Definition: kApiDef.h:749
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:513
kStatus kSerializer_Read16uArray(kSerializer serializer, k16u *data, kSize count)
Reads a k16u array.
Definition: kSerializer.h:592
Represents an error code.
kStatus kSerializer_ReadSSize(kSerializer serializer, kSSize *data)
Reads a kSSize value.
Definition: kSerializer.h:1065
kStatus kSerializer_ReadType(kSerializer serializer, kType *type, kTypeVersion *version)
Reads a type code.
Definition: kSerializer.h:1139
kStatus kSerializer_Read8uArray(kSerializer serializer, k8u *data, kSize count)
Reads a k8u array.
Definition: kSerializer.h:480
#define kPointer_ReadAs(POINTER, TYPE)
Deferences a pointer, assuming the specified type, and returns the resulting value.
Definition: kApiDef.h:318
kStatus kSerializer_Write64uArray(kSerializer serializer, const k64u *data, kSize count)
Writes a k64u array.
Definition: kSerializer.h:780
kStatus kSerializer_ReadSSizeArray(kSerializer serializer, kSSize *data, kSize count)
Reads a kSSize array.
Represents a 64-bit floating-point number.
kStatus kSerializer_Read32fArray(kSerializer serializer, k32f *data, kSize count)
Reads a k32f array.
Definition: kSerializer.h:907
Represents a boolean value.
kStatus kSerializer_WriteSSize(kSerializer serializer, kSSize data)
Writes a kSSize value.
Definition: kSerializer.h:1035
kEndianness kSerializer_Endianness(kSerializer serializer)
Reports the (byte ordering) of encoded/decoded values.
Definition: kSerializer.h:259
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:1291