10 #ifndef K_API_SERIALIZER_H
11 #define K_API_SERIALIZER_H
16 #include <kApi/Io/kSerializer.x.h>
208 return xkSerializer_VTable(serializer)->VSetSizeEncoding(serializer, byteCount);
236 return obj->bufferSize;
255 obj->maxBufferedWriteSize = size;
271 return obj->maxBufferedWriteSize;
288 obj->objectFlushEnabled = enable;
304 return obj->objectFlushEnabled;
318 return obj->sizeEncoding;
336 obj->endianness = endianness;
353 return obj->endianness;
366 return xkSerializer_VTable(serializer)->VWriteObject(serializer,
object);
379 return xkSerializer_VTable(serializer)->VReadObject(serializer,
object, allocator);
413 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
427 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
471 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
485 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
529 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
543 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
586 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_8);
600 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_8);
644 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_16);
657 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
670 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_16);
684 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
697 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_16);
711 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
724 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_16);
738 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_16);
751 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
765 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
777 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
791 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
804 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
818 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
831 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
845 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
858 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
872 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
884 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
897 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
910 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
923 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
935 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
948 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
961 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_32);
974 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
986 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_32);
999 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_32);
1011 return xkSerializer_WritePrimitive(serializer, &data, xkSERIALIZER_PRIMATIVE_64);
1024 return xkSerializer_WritePrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
1037 return xkSerializer_ReadPrimitive(serializer, data, xkSERIALIZER_PRIMATIVE_64);
1051 return xkSerializer_ReadPrimitives(serializer, data, count, xkSERIALIZER_PRIMATIVE_64);
1067 return xkSerializer_WriteSizePrimitive(serializer, data);
1097 return xkSerializer_ReadSizePrimitive(serializer, data);
1127 return xkSerializer_WriteSSizePrimitive(serializer, data);
1157 return xkSerializer_ReadSSizePrimitive(serializer, data);
1202 return xkSerializer_VTable(serializer)->VCanWriteType(serializer, type);
1216 return xkSerializer_VTable(serializer)->VWriteType(serializer, type, version);
1231 return xkSerializer_VTable(serializer)->VReadType(serializer, type, version);
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)))
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)))
1340 return xkSerializer_AdvanceWriteImpl(serializer, offset);
1420 return xkSerializer_AdvanceReadImpl(serializer, offset);
1437 return xkSerializer_FlushEx(serializer,
kTRUE);
1453 return xkSerializer_VTable(serializer)->VReset(serializer);
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.
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