Default pickle registry just uses TrieMaps and delegates behavior to a runtime pickler generator.
Default implementation of the Ref registry that allows circular dependencies to be handled.
Default implementation of the Ref registry that allows circular dependencies to be handled. Uses thread-local caches (per pickler/unpickler thread).
The default implementation of a pickling runtime.
The default implementation of a pickling runtime.
Notes:
Default implementation of a runtime pickler generator
Default implementation of a runtime pickler generator
TODO - There is still something off here compared to the hardcoded versions.
[error] scala.pickling.array.json.ArrayJsonTest [error] scala.pickling.externalizable.mapstatus.MapStatusTest [error] scala.pickling.runtimenulltest.NullRuntimeTest [error] scala.pickling.runtime.RuntimeArrayTests [error] scala.pickling.test.collection.WrappedArrayTest [error] scala.pickling.array.binary.ArrayBinaryTest [error] scala.pickling.test.runtime.array.RuntimeArrayTest
This runtime will not use reflection to generate new picklers, but DOES allow lookup of statically generated picklers at runtime.
An implementation which ensures that no newly generated picklers create shared references.
An implementation of the pickling runtime that tries to avoid ALL runtime picklers, including runtime lookup of statically defined picklers.
An implementation of the RefRegistry which ensures NO sharing during pickling.
An implementation of ref sharing that ensures no references are created while pickling and none are looked up while unpickling.
A runtime pickler generator that just throws exceptions when trying to create picklers.
Helper method to aid in retrieving java.lang.reflect.Fields and java.lang.reflect.Methods at runtime.
Replace the old PicklingRuntime keeping its state.
Replace the old PicklingRuntime keeping its state. This operation is not thread-safe and it's expected to be executed in a single thread.
Note that we don't do anything with the RefRegistry because in future versions we are going to change how cyclic references work.
(Since version 0.11) Use currentRuntime.refRegistry.pickle.clear
instead
(Since version 0.11) Use currentRuntime.refRegistry.unpickle.clear
instead
(Since version 0.11) Use currentRuntime.refRegistry.pickle.registerPicklee
instead
(Since version 0.11) Use currentRuntime.refRegistry.unpickle.lookupUnpicklees
instead
(Since version 0.11) Use currentRuntime.refRegistry.unpickle.preregisterUnpicklee
instead
(Since version 0.11) Use currentRuntime.refRegistry.pickle.registerPicklee
instead
(Since version 0.11) Use currentRuntime.refRegistry.unpickle.registerUnpicklee
instead