29#ifndef SN_SERIALIZATION_REGISTRY_H
30#define SN_SERIALIZATION_REGISTRY_H
32#include "extensions/PxSerialization.h"
33#include "extensions/PxRepXSerializer.h"
35#include "foundation/PxUserAllocated.h"
36#include "foundation/PxHashMap.h"
37#include "foundation/PxArray.h"
43namespace Cm {
class Collection; }
55 PxPhysics& getPhysics()
const {
return mPhysics; }
63 const char* getSerializerName(PxU32 index)
const;
64 PxType getSerializerType(PxU32 index)
const;
65 PxU32 getNbSerializers()
const {
return mSerializers.size(); }
72 SerializationRegistry &operator=(
const SerializationRegistry &);
74 typedef PxCoalescedHashMap<PxType, PxSerializer*> SerializerMap;
75 typedef PxHashMap<PxType, PxRepXSerializer*> RepXSerializerMap;
78 SerializerMap mSerializers;
79 RepXSerializerMap mRepXSerializers;
80 PxArray<PxBinaryMetaDataCallback> mMetaDataCallbacks;
83 void sortCollection(Cm::Collection& collection, SerializationRegistry& sr,
bool isRepx);
Output stream class for I/O.
Definition PxIO.h:114
Abstract singleton factory class used for instancing objects in the Physics SDK.
Definition PxPhysics.h:91
Class serving as a registry for XML (RepX) and binary serializable types.
Definition PxSerialFramework.h:292
Serialization interface class.
Definition PxSerializer.h:63
Definition PxUserAllocated.h:43
Definition SnSerializationRegistry.h:48
void registerRepXSerializer(PxType type, PxRepXSerializer &serializer)
Register a RepX serializer for a concrete type.
Definition SnSerializationRegistry.cpp:237
virtual void release()
Releases PxSerializationRegistry instance.
Definition SnSerializationRegistry.h:53
void registerSerializer(PxType type, PxSerializer &serializer)
Register a serializer for a concrete type.
Definition SnSerializationRegistry.cpp:175
PxRepXSerializer * getRepXSerializer(const char *typeName) const
Returns RepX serializer given the corresponding type name.
Definition SnSerializationRegistry.cpp:248
PxSerializer * unregisterSerializer(PxType type)
Unregister a serializer for a concrete type, and retrieves the corresponding serializer object.
Definition SnSerializationRegistry.cpp:186
PxRepXSerializer * unregisterRepXSerializer(PxType type)
Unregister a RepX serializer for a concrete type, and retrieves the corresponding serializer object.
Definition SnSerializationRegistry.cpp:259
void registerBinaryMetaDataCallback(PxBinaryMetaDataCallback callback)
Register binary meta data callback.
Definition SnSerializationRegistry.cpp:224
const PxSerializer * getSerializer(PxType type) const
Returns PxSerializer corresponding to type.
Definition SnSerializationRegistry.cpp:199
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
PX_DEPRECATED void(* PxBinaryMetaDataCallback)(PxOutputStream &stream)
Callback type for exporting binary meta data for a serializable type.
Definition PxSerialFramework.h:279