Interface class for serializer-deserializer of NvParameterized objects. More...
#include <NvSerializer.h>
Classes | |
class | DeserializedResults |
TODO. More... | |
struct | MetadataEntry |
This class keeps metadata of a single NvParameterized class. More... | |
Public Types | |
enum | ErrorType { ERROR_NONE = 0, ERROR_UNKNOWN, ERROR_NOT_IMPLEMENTED, ERROR_INVALID_PLATFORM, ERROR_INVALID_PLATFORM_NAME, ERROR_INVALID_FILE_VERSION, ERROR_INVALID_FILE_FORMAT, ERROR_INVALID_MAGIC, ERROR_INVALID_CHAR, ERROR_STREAM_ERROR, ERROR_MEMORY_ALLOCATION_FAILURE, ERROR_UNALIGNED_MEMORY, ERROR_PRESERIALIZE_FAILED, ERROR_INTERNAL_BUFFER_OVERFLOW, ERROR_OBJECT_CREATION_FAILED, ERROR_CONVERSION_FAILED, ERROR_VAL2STRING_FAILED, ERROR_STRING2VAL_FAILED, ERROR_INVALID_TYPE_ATTRIBUTE, ERROR_UNKNOWN_XML_TAG, ERROR_MISSING_DOCTYPE, ERROR_MISSING_ROOT_ELEMENT, ERROR_INVALID_NESTING, ERROR_INVALID_ATTR, ERROR_INVALID_ARRAY, ERROR_ARRAY_INDEX_OUT_OF_RANGE, ERROR_INVALID_VALUE, ERROR_INVALID_INTERNAL_PTR, ERROR_INVALID_PARAM_HANDLE, ERROR_INVALID_RELOC_TYPE, ERROR_INVALID_DATA_TYPE, ERROR_INVALID_REFERENCE } |
Status enums that the Serializer methods may return. | |
enum | SerializeType { NST_XML = 0, NST_BINARY, NST_LAST } |
The supported serialization formats. More... | |
typedef DeserializedResults < ::NvParameterized::Interface * > | DeserializedData |
Container for results of deserialization. | |
typedef DeserializedResults < MetadataEntry > | DeserializedMetadata |
Container for results of metadata deserialization. | |
Public Member Functions | |
virtual ErrorType | setTargetPlatform (const SerializePlatform &platform)=0 |
Set platform to use in platform-dependent serialization. | |
virtual void | setAutoUpdate (bool doUpdate)=0 |
Sets whether serializer will automatically update objects after deserialization. | |
virtual ErrorType | serialize (physx::general_PxIOStream2::PxFileBuf &stream, const ::NvParameterized::Interface **objs, uint32_t nobjs, bool doSerializeMetadata=false)=0 |
Serialize array of NvParameterized-objects to a stream. | |
virtual ErrorType | peekNumObjects (physx::general_PxIOStream2::PxFileBuf &stream, uint32_t &numObjects)=0 |
Peek number of NvParameterized-objects in stream with serialized data. | |
virtual ErrorType | peekClassNames (physx::general_PxIOStream2::PxFileBuf &stream, char **classNames, uint32_t &numClassNames)=0 |
Peek number of NvParameterized-objects in stream with serialized data. | |
virtual ErrorType | peekNumObjectsInplace (const void *data, uint32_t dataLen, uint32_t &numObjects)=0 |
Peek number of NvParameterized-objects in memory buffer with serialized data. | |
virtual ErrorType | deserializeMetadata (physx::general_PxIOStream2::PxFileBuf &stream, DeserializedMetadata &desData) |
Deserialize metadata from a stream into one or more definitions. | |
virtual ErrorType | deserialize (physx::general_PxIOStream2::PxFileBuf &stream, DeserializedData &desData) |
Deserialize a stream into one or more NvParameterized objects. | |
virtual ErrorType | deserialize (physx::general_PxIOStream2::PxFileBuf &stream, DeserializedData &desData, bool &isUpdated)=0 |
Deserialize a stream into one or more NvParameterized objects. | |
virtual ErrorType | deserializeInplace (void *data, uint32_t dataLen, DeserializedData &desData) |
Deserialize memory buffer into one or more NvParameterized objects. | |
virtual ErrorType | deserializeInplace (void *data, uint32_t dataLen, DeserializedData &desData, bool &isUpdated)=0 |
Deserialize memory buffer into one or more NvParameterized objects. | |
virtual ErrorType | peekInplaceAlignment (physx::general_PxIOStream2::PxFileBuf &stream, uint32_t &align)=0 |
Get minimum alignment required for inplace deserialization of data in stream. | |
virtual void | release ()=0 |
Release deserializer and any memory allocations associated with it. | |
Static Public Member Functions | |
static SerializeType | peekSerializeType (physx::general_PxIOStream2::PxFileBuf &stream) |
Get type of stream (binary or xml) | |
static ErrorType | peekPlatform (physx::general_PxIOStream2::PxFileBuf &stream, SerializePlatform &platform) |
Get stream native platform. |
Detailed Description
Interface class for serializer-deserializer of NvParameterized objects.
Serializer serializes and deserializes one or more NvParameterized objects to file using various output formats (see SerializeType).
Member Typedef Documentation
typedef DeserializedResults< ::NvParameterized::Interface *> NvParameterized::Serializer::DeserializedData |
Container for results of deserialization.
DeserializedData holds array of NvParameterized objects obtained during deserialization.
Container for results of metadata deserialization.
DeserializedMetadata holds array of MetadataEntry obtained during metadata deserialization.
Member Enumeration Documentation
Member Function Documentation
virtual ErrorType NvParameterized::Serializer::deserialize | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
DeserializedData & | desData | ||
) | [virtual] |
Deserialize a stream into one or more NvParameterized objects.
- Parameters:
-
[in] stream the stream from which objects will be deserialized [out] desData storage for deserialized data
virtual ErrorType NvParameterized::Serializer::deserialize | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
DeserializedData & | desData, | ||
bool & | isUpdated | ||
) | [pure virtual] |
Deserialize a stream into one or more NvParameterized objects.
- Parameters:
-
[in] stream the stream from which objects will be deserialized [out] desData storage for deserialized data [out] isUpdated true if any legacy object was updated, false otherwise
virtual ErrorType NvParameterized::Serializer::deserializeInplace | ( | void * | data, |
uint32_t | dataLen, | ||
DeserializedData & | desData | ||
) | [virtual] |
Deserialize memory buffer into one or more NvParameterized objects.
- Parameters:
-
[in] data pointer to serialized data. It should be allocated via Traits. [in] dataLen length of serialized data [out] desData storage for deserialized data
- Warning:
- Currently only binary serializer supports inplace deserialization
- Memory must be aligned to 8 byte boundary
virtual ErrorType NvParameterized::Serializer::deserializeInplace | ( | void * | data, |
uint32_t | dataLen, | ||
DeserializedData & | desData, | ||
bool & | isUpdated | ||
) | [pure virtual] |
Deserialize memory buffer into one or more NvParameterized objects.
- Parameters:
-
[in] data pointer to serialized data [in] dataLen length of serialized data [out] desData storage for deserialized data [out] isUpdated true if any legacy object was updated, false otherwise
- Warning:
- Currently only binary serializer supports inplace deserialization
- Memory must be aligned to the boundary required by the data (see getInplaceAlignment)
virtual ErrorType NvParameterized::Serializer::deserializeMetadata | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
DeserializedMetadata & | desData | ||
) | [virtual] |
Deserialize metadata from a stream into one or more definitions.
- Parameters:
-
[in] stream the stream from which metadata will be deserialized [out] desData storage for deserialized metadata
- Warning:
- This is a draft implementation!
virtual ErrorType NvParameterized::Serializer::peekClassNames | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
char ** | classNames, | ||
uint32_t & | numClassNames | ||
) | [pure virtual] |
Peek number of NvParameterized-objects in stream with serialized data.
- Parameters:
-
[in] stream the stream from which objects will be deserialized [in] classNames pointer to buffer for resulting names [in,out] numClassNames limit on number of returned classNames; number of returned names
- Warning:
- User is responsible for releasing every element of classNames via Traits::strfree()
virtual ErrorType NvParameterized::Serializer::peekInplaceAlignment | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
uint32_t & | align | ||
) | [pure virtual] |
Get minimum alignment required for inplace deserialization of data in stream.
- Parameters:
-
[in] stream stream which will be inplace deserialized [out] align alignment required for inplace deserialization of stream
- Note:
- For most of the objects this will return default alignment of 8 bytes
virtual ErrorType NvParameterized::Serializer::peekNumObjects | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
uint32_t & | numObjects | ||
) | [pure virtual] |
Peek number of NvParameterized-objects in stream with serialized data.
- Parameters:
-
[in] stream the stream from which the object will be deserialized [out] numObjects number of objects
- Warning:
- Not all streams support peeking
virtual ErrorType NvParameterized::Serializer::peekNumObjectsInplace | ( | const void * | data, |
uint32_t | dataLen, | ||
uint32_t & | numObjects | ||
) | [pure virtual] |
Peek number of NvParameterized-objects in memory buffer with serialized data.
- Parameters:
-
[in] data pointer to memory buffer [in] dataLen length of memory buffer [out] numObjects number of objects
static ErrorType NvParameterized::Serializer::peekPlatform | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
SerializePlatform & | platform | ||
) | [static] |
Get stream native platform.
- Parameters:
-
[in] stream stream to be analyzed [out] platform stream native platform
static SerializeType NvParameterized::Serializer::peekSerializeType | ( | physx::general_PxIOStream2::PxFileBuf & | stream | ) | [static] |
Get type of stream (binary or xml)
- Parameters:
-
[in] stream stream to be analyzed
virtual ErrorType NvParameterized::Serializer::serialize | ( | physx::general_PxIOStream2::PxFileBuf & | stream, |
const ::NvParameterized::Interface ** | objs, | ||
uint32_t | nobjs, | ||
bool | doSerializeMetadata = false |
||
) | [pure virtual] |
Serialize array of NvParameterized-objects to a stream.
- Parameters:
-
[in] stream the stream to which the object will be serialized [in] objs NvParameterized-objects which will be serialized [in] nobjs number of objects [in] doSerializeMetadata set this to store object metadata in file
- Warning:
- Serialized file may depend on selected target platform
virtual void NvParameterized::Serializer::setAutoUpdate | ( | bool | doUpdate | ) | [pure virtual] |
Sets whether serializer will automatically update objects after deserialization.
- Parameters:
-
[in] doUpdate should automatic update be done?
- Warning:
- Normally you will not need this
- This is true by default
virtual ErrorType NvParameterized::Serializer::setTargetPlatform | ( | const SerializePlatform & | platform | ) | [pure virtual] |
Set platform to use in platform-dependent serialization.
- Parameters:
-
[in] platform target platform
- Warning:
- Currently this is used only in binary serializer
Application running on target platforms may potentially make use of extremely fast inplace deserialization (using method deserializeInplace) on files which were serialized for this platform.
The documentation for this class was generated from the following file:
Generated on Fri Dec 15 2017 13:58:41
Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.