template<typename GridCellType, typename Derived>
struct fpmas::io::datapack::Serializer< PtrWrapper< fpmas::model::GridCellBase< GridCellType, Derived > > >
Polymorphic GridCellBase ObjectPack serializer specialization.
| Serialization Scheme || |-------------------—|| | Derived ObjectPack serialization | GridCellBase::location() | GridCellBase::rd() |
The Derived part is serialized using the Serializer<PtrWrapper<Derived>> serialization, that can be defined externally without additional constraint. The input GridCellBase pointer is cast to Derived when required to call the proper Serializer specialization.
- Template Parameters
-
template<typename GridCellType , typename Derived >
Unserializes a polymorphic GridCellBase from the specified ObjectPack.
First, the Derived part, that extends GridCellBase by definition, is unserialized from the ObjectPack using the Serializer<fpmas::api::utils::PtrWrapper<Derived> specialization. During this operation, a Derived instance is dynamically allocated, that might leave the GridAgent members undefined. The specific GridAgent member location_point is then initialized from the second ObjectPack field, the internal random number generator from the third, and the unserialized Derived instance is returned in the form of a polymorphic GridCellBase pointer.
- Parameters
-
- Returns
- unserialized pointer to a polymorphic
GridCellBase