Package com.jme3.network.serializing
Class Serializer
java.lang.Object
com.jme3.network.serializing.Serializer
- Direct Known Subclasses:
ArraySerializer,BooleanSerializer,ByteSerializer,CharSerializer,ClientRegistrationMessage.ClientRegistrationSerializer,CollectionSerializer,DateSerializer,DisconnectMessage.DisconnectSerializer,DoubleSerializer,EnumSerializer,FieldSerializer,FloatSerializer,GZIPSerializer,IntSerializer,LongSerializer,MapSerializer,RmiSerializer,SavableSerializer,SerializableSerializer,ShortSerializer,StringSerializer,Vector3Serializer,ZIPSerializer
The main serializer class, which will serialize objects such that
they can be sent across the network. Serializing classes should extend
this to provide their own serialization.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SerializergetExactSerializer(Class cls) static SerializerRegistrationstatic SerializergetSerializer(Class cls) static SerializergetSerializer(Class cls, boolean failOnMiss) static SerializerRegistrationstatic SerializerRegistrationgetSerializerRegistration(Class cls, boolean failOnMiss) static Collection<SerializerRegistration> static voidvoidinitialize(Class clazz) Registration for when a serializer may need to cache something.static booleanstatic SerializerRegistrationreadClass(ByteBuffer buffer) Read the class from given buffer and return its SerializerRegistration.static ObjectreadClassAndObject(ByteBuffer buffer) Read the class and the object.abstract <T> TreadObject(ByteBuffer data, Class<T> c) Read an object from the buffer, effectively deserializing it.static SerializerRegistrationregisterClass(Class cls) static SerializerRegistrationregisterClass(Class cls, boolean failOnMiss) Registers the specified class.static SerializerRegistrationregisterClass(Class cls, Serializer serializer) static voidregisterClasses(Class... classes) static SerializerRegistrationregisterClassForId(short id, Class cls, Serializer serializer) Directly registers a class for a specific ID.static SerializerRegistration[]registerPackage(String pkgName) Deprecated.This cannot be implemented in a reasonable way that works in all deployment methods.static voidsetReadOnly(boolean b) Can put the registry in a read-only state such that additional attempts to register classes will fail.static voidsetStrictRegistration(boolean b) When set to true, classes that do not have intrinsic IDs in their@Serializablewill not be auto-registered during write.static SerializerRegistrationwriteClass(ByteBuffer buffer, Class type) Write a class and return its SerializerRegistration.static voidwriteClassAndObject(ByteBuffer buffer, Object object) Write the class and object.abstract voidwriteObject(ByteBuffer buffer, Object object) Write an object to the buffer, effectively serializing it.
-
Field Details
-
log
-
-
Constructor Details
-
Serializer
public Serializer()
-
-
Method Details
-
initialize
public static void initialize() -
setStrictRegistration
public static void setStrictRegistration(boolean b) When set to true, classes that do not have intrinsic IDs in their@Serializablewill not be auto-registered during write. Defaults to true since this is almost never desired behavior with the way this code works. Set to false to get the old permissive behavior. -
registerClass
-
registerClasses
-
setReadOnly
public static void setReadOnly(boolean b) Can put the registry in a read-only state such that additional attempts to register classes will fail. This can be used by servers to lock the registry to avoid accidentally registering classes after a full registry set has been compiled. -
isReadOnly
public static boolean isReadOnly() -
registerClassForId
Directly registers a class for a specific ID. Generally, use the regular registerClass() method. This method is intended for framework code that might be maintaining specific ID maps across client and server. -
registerClass
Registers the specified class. The failOnMiss flag controls whether this method returns null for failed registration or throws an exception. -
registerPackage
Deprecated.This cannot be implemented in a reasonable way that works in all deployment methods. -
registerClass
-
getExactSerializer
-
getSerializer
-
getSerializer
-
getSerializerRegistrations
-
getExactSerializerRegistration
-
getSerializerRegistration
-
getSerializerRegistration
-
readClass
Read the class from given buffer and return its SerializerRegistration.- Parameters:
buffer- The buffer to read from.- Returns:
- The SerializerRegistration, or null if non-existent.
-
readClassAndObject
Read the class and the object.- Parameters:
buffer- Buffer to read from.- Returns:
- The Object that was read.
- Throws:
IOException- If serialization failed.
-
writeClass
Write a class and return its SerializerRegistration.- Parameters:
buffer- The buffer to write the given class to.type- The class to write.- Returns:
- The SerializerRegistration that's registered to the class.
- Throws:
IOException
-
writeClassAndObject
Write the class and object.- Parameters:
buffer- The buffer to write to.object- The object to write.- Throws:
IOException- If serializing fails.
-
readObject
Read an object from the buffer, effectively deserializing it.- Parameters:
data- The buffer to read from.c- The class of the object.- Returns:
- The object read.
- Throws:
IOException- If deserializing fails.
-
writeObject
Write an object to the buffer, effectively serializing it.- Parameters:
buffer- The buffer to write to.object- The object to serialize.- Throws:
IOException- If serializing fails.
-
initialize
Registration for when a serializer may need to cache something. Override to use.- Parameters:
clazz- The class that has been registered to the serializer.
-